Change in ...osmo_gsup[master]: contrib/jenkins.sh: new file
Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/erlang/osmo_gsup/+/16903 to look at the new patch set (#3). Change subject: contrib/jenkins.sh: new file .. contrib/jenkins.sh: new file Related: OS#4345 Change-Id: Ifa6c846ec002ad748185ba5da7108a67a9367786 --- A contrib/jenkins.sh 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/erlang/osmo_gsup refs/changes/03/16903/3 -- To view, visit https://gerrit.osmocom.org/c/erlang/osmo_gsup/+/16903 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: erlang/osmo_gsup Gerrit-Branch: master Gerrit-Change-Id: Ifa6c846ec002ad748185ba5da7108a67a9367786 Gerrit-Change-Number: 16903 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset
Change in ...osmo_gsup[master]: contrib/jenkins.sh: new file
Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/erlang/osmo_gsup/+/16903 to look at the new patch set (#2). Change subject: contrib/jenkins.sh: new file .. contrib/jenkins.sh: new file Related: OS#4345 Change-Id: Ifa6c846ec002ad748185ba5da7108a67a9367786 --- A contrib/jenkins.sh 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/erlang/osmo_gsup refs/changes/03/16903/2 -- To view, visit https://gerrit.osmocom.org/c/erlang/osmo_gsup/+/16903 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: erlang/osmo_gsup Gerrit-Branch: master Gerrit-Change-Id: Ifa6c846ec002ad748185ba5da7108a67a9367786 Gerrit-Change-Number: 16903 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset
Change in ...osmo_gsup[master]: contrib/jenkins.sh: new file
osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/erlang/osmo_gsup/+/16903 ) Change subject: contrib/jenkins.sh: new file .. contrib/jenkins.sh: new file Related: OS#4345 Depends: osmo-ci d299ca1ec8ba1c1483264479136f45dbb0845c75 Change-Id: Ifa6c846ec002ad748185ba5da7108a67a9367786 --- A contrib/jenkins.sh 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/erlang/osmo_gsup refs/changes/03/16903/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh new file mode 100755 index 000..bc676c6 --- /dev/null +++ b/contrib/jenkins.sh @@ -0,0 +1,4 @@ +#!/bin/sh -ex + +rebar3 compile +rebar3 eunit -- To view, visit https://gerrit.osmocom.org/c/erlang/osmo_gsup/+/16903 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: erlang/osmo_gsup Gerrit-Branch: master Gerrit-Change-Id: Ifa6c846ec002ad748185ba5da7108a67a9367786 Gerrit-Change-Number: 16903 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange
Change in simtrace2[master]: add script to flash latest firmware
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/16874 ) Change subject: add script to flash latest firmware .. Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/16874 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I3ebe0f54b6e3b7b45478603cc0a5b56e87b1f461 Gerrit-Change-Number: 16874 Gerrit-PatchSet: 1 Gerrit-Owner: tsaitgaist Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 16 Jan 2020 20:36:13 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in simtrace2[master]: add script to flash latest firmware
laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/16874 ) Change subject: add script to flash latest firmware .. add script to flash latest firmware this python script lists the SIMtrace 2 devices connected to USB and will flash the latest version of the application (if necessary). it requires pyusb and dfu-util. it is intended for end users so they don't need to read the length and error-prone instructions provided in the wiki. TODO: - support updating bootloader (once dfu-ram image exists) - use python implementation of dfu-util to be python only Change-Id: I3ebe0f54b6e3b7b45478603cc0a5b56e87b1f461 --- A contrib/flash.py 1 file changed, 162 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/contrib/flash.py b/contrib/flash.py new file mode 100755 index 000..435d311 --- /dev/null +++ b/contrib/flash.py @@ -0,0 +1,162 @@ +#!/usr/bin/env python +# encoding: utf-8 +# python: 3.8.1 + +# library to enumerate USB devices +import usb.core +from usb.util import * +# more elegant structure +from typing import NamedTuple +# regular expressions utilities +import re +# open utilities to handle files +import os, sys +# to download the firmwares +import urllib.request +# to flash using DFU-util +import subprocess + +# SIMtrace 2 device information +class Device(NamedTuple): + usb_vendor_id: int + usb_product_id: int + name: str + url: dict # 1: sniff/trace firmware, 2: card emulation firmware + +# SIMtrace 2 devices definitions +DEVICE_SIMTRACE = Device(usb_vendor_id=0x1d50, usb_product_id=0x60e3, name="SIMtrace 2", url={"trace": "https://ftp.osmocom.org/binaries/simtrace2/firmware/latest/simtrace-trace-dfu-latest.bin;, "cardem": "https://osmocom.org/attachments/download/3868/simtrace-cardem-dfu.bin"}) +DEVICE_QMOD = Device(usb_vendor_id=0x1d50, usb_product_id=0x4004, name="sysmoQMOD (Quad Modem)", url={"cardem": "https://ftp.osmocom.org/binaries/simtrace2/firmware/latest/qmod-cardem-dfu-latest.bin"}) +DEVICE_OWHW = Device(usb_vendor_id=0x1d50, usb_product_id=0x4001, name="OWHW", url={"cardem": "https://ftp.osmocom.org/binaries/simtrace2/firmware/latest/owhw-cardem-dfu-latest.bin"}) +DEVICES = [DEVICE_SIMTRACE, DEVICE_QMOD] + +# which firmware does the SIMtrace USN interface subclass correspond +FIRMWARE_SUBCLASS = {1: "trace", 2: "cardem"} + +def print_help(): + print("this script will flash SIMtrace 2 - based devices") + print("when no argument is provided, it will try to flash the application firmware of all SIMtrace 2 devices connected to USB with the latest version") + print("to flash a specific firmware, provide the name as argument") + print("the possible firmwares are: trace, cardem") + print("to list all devices connected to USB, provide the argument \"list\"") + +# the firmware to flash +to_flash = None + +# parse command line argument +if len(sys.argv) == 2: + to_flash = sys.argv[1] +if to_flash not in ["list", "trace", "cardem"] and len(sys.argv) > 1: + print_help() + exit(0) + +# get all USB devices +devices = [] +devices_nb = 0 +updated_nb = 0 +usb_devices = usb.core.find(find_all=True) +for usb_device in usb_devices: + # find SIMtrace devices + definitions = list(filter(lambda x: x.usb_vendor_id == usb_device.idVendor and x.usb_product_id == usb_device.idProduct, DEVICES)) + if 1 != len(definitions): + continue + devices_nb += 1 + definition = definitions[0] + serial = usb_device.serial_number or "unknown" + usb_path = str(usb_device.bus) + "-" + ".".join(map(str, usb_device.port_numbers)) + print("found " + definition.name + " device (chip ID " + serial + ") at USB path " + usb_path) + # determine if we are running DFU (in most cases the bootloader, but could also be the application) + dfu_interface = None + for configuration in usb_device: + # get DFU interface descriptor + dfu_interface = dfu_interface or find_descriptor(configuration, bInterfaceClass=254, bInterfaceSubClass=1) + if (None == dfu_interface): + print("no DFU USB interface found") + continue + dfu_mode = (2 == dfu_interface.bInterfaceProtocol) # InterfaceProtocol 1 is runtime mode, 2 is DFU mode + # determine firmware type (when not in DFU mode) + firmware = None + simtrace_interface = None + for configuration in usb_device: + simtrace_interface = simtrace_interface or find_descriptor(configuration, bInterfaceClass=255) + if simtrace_interface and simtrace_interface.bInterfaceSubClass in FIRMWARE_SUBCLASS: + firmware = firmware or FIRMWARE_SUBCLASS[simtrace_interface.bInterfaceSubClass] + if dfu_mode: + firmware = 'dfu' + if firmware: +
Change in simtrace2[master]: DFU: add DFU application
laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/16558 ) Change subject: DFU: add DFU application .. DFU: add DFU application this adds the DFU as application, allowing to flash the bootloader. a USB DFU alternative is added to flash the bootloader partition. when the DFU is started as bootloader, the partition/alternative to flash the bootloader is marked as "not available", and ineffective. the same happens for the application partition when DFU is started as application. this distinction is make at compile time, not at runtime, because of size restrictions (the bootloader was already close to the 16 kB limit). *_dfu_flash.bin should not be mixed with *_dfu_dfu.bin. *_dfu_dfu.bin should be flashed as application using the already existing DFU bootloader. once this images is started (as application), the *_dfu_flash.bin should be flashed as bootloader using the DFU application. once the DFU bootloader has been flashed, soft resetting (not re-powering) will cause the bootloader to start, allowing to flash the application with a normal image (e.g. not DFU), replacing the DFU application. this switch to DFU only happens after downloading (e.g. flashing). it is planned to have the DFU application erase itself after flashing, but this is currently not implemented. Change-Id: Ic273bb593a7669111b0219fe301d7897419167c8 --- M firmware/Makefile M firmware/apps/dfu/main.c M firmware/apps/dfu/usb_strings.txt M firmware/atmel_softpack_libraries/libchip_sam3s/source/USBD_HAL.c M firmware/atmel_softpack_libraries/usb/device/dfu/dfu.h M firmware/atmel_softpack_libraries/usb/device/dfu/dfu_desc.c M firmware/atmel_softpack_libraries/usb/device/dfu/dfu_driver.c M firmware/libboard/common/include/board_common.h M firmware/libboard/common/source/board_cstartup_gnu.c 9 files changed, 92 insertions(+), 20 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/firmware/Makefile b/firmware/Makefile index 5c7aa92..bdca6e5 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -41,7 +41,7 @@ # Defines which are the available memory targets for the SAM3S-EK board. ifeq ($(APP), dfu) -MEMORIES ?= flash +MEMORIES ?= flash dfu else MEMORIES ?= dfu endif diff --git a/firmware/apps/dfu/main.c b/firmware/apps/dfu/main.c index 5aafc7c..2e80884 100644 --- a/firmware/apps/dfu/main.c +++ b/firmware/apps/dfu/main.c @@ -26,8 +26,15 @@ #include +/* USB alternate interface index used to identify which partition to flash */ +/** USB alternate interface index indicating RAM partition */ #define ALTIF_RAM 0 +/** USB alternate interface index indicating flash partition */ +#if defined(ENVIRONMENT_flash) #define ALTIF_FLASH 1 +#elif defined(ENVIRONMENT_dfu) +#define ALTIF_FLASH 2 +#endif unsigned int g_unique_id[4]; /* remember if the watchdog has been configured in the main loop so we can kick it in the ISR */ @@ -44,10 +51,18 @@ **/ #define RAM_ADDR(offset) (IRAM_ADDR + BOARD_DFU_RAM_SIZE + offset) +#if defined(ENVIRONMENT_flash) #define FLASH_ADDR(offset) (IFLASH_ADDR + BOARD_DFU_BOOT_SIZE + offset) +#elif defined(ENVIRONMENT_dfu) +#define FLASH_ADDR(offset) (IFLASH_ADDR + offset) +#endif -#define IFLASH_END ((uint8_t *)IFLASH_ADDR + IFLASH_SIZE) -#define IRAM_END ((uint8_t *)IRAM_ADDR + IRAM_SIZE) +#define IRAM_END ((uint8_t *)IRAM_ADDR + IRAM_SIZE) +#if defined(ENVIRONMENT_flash) +#define IFLASH_END ((uint8_t *)IFLASH_ADDR + IFLASH_SIZE) +#elif defined(ENVIRONMENT_dfu) +#define IFLASH_END ((uint8_t *)IFLASH_ADDR + BOARD_DFU_BOOT_SIZE) +#endif /* incoming call-back: Host has transferred 'len' bytes (stored at * 'data'), which we shall write to 'offset' into the partition @@ -90,7 +105,11 @@ break; case ALTIF_FLASH: addr = FLASH_ADDR(offset); +#if defined(ENVIRONMENT_flash) if (addr < IFLASH_ADDR || addr + len >= IFLASH_ADDR + IFLASH_SIZE) { +#elif defined(ENVIRONMENT_dfu) + if (addr < IFLASH_ADDR || addr + len >= IFLASH_ADDR + BOARD_DFU_BOOT_SIZE) { +#endif g_dfu->state = DFU_STATE_dfuERROR; g_dfu->status = DFU_STATUS_errADDRESS; rc = DFU_RET_STALL; @@ -281,12 +300,12 @@ TRACE_INFO("DFU bootloader start reason: "); switch (USBDFU_OverrideEnterDFU()) { case 0: - /* 0 normally means that there is no override, but we are in the bootloader, -* thus the first check in board_cstartup_gnu did return something else than 0. -* this can only be g_dfu->magic which is erased when the segment are -* relocated, which happens in board_cstartup_gnu just after USBDFU_OverrideEnterDFU. -* no static variable can be used to store this case since this
Change in simtrace2[master]: DFU: add DFU application
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/16558 ) Change subject: DFU: add DFU application .. Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/16558 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ic273bb593a7669111b0219fe301d7897419167c8 Gerrit-Change-Number: 16558 Gerrit-PatchSet: 2 Gerrit-Owner: tsaitgaist Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Thu, 16 Jan 2020 20:34:36 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-bts[master]: ta_control: move timing advance code from osmo-bts-trx to common
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/16885 ) Change subject: ta_control: move timing advance code from osmo-bts-trx to common .. Patch Set 3: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/16885/3/src/common/ta_control.c File src/common/ta_control.c: https://gerrit.osmocom.org/c/osmo-bts/+/16885/3/src/common/ta_control.c@52 PS3, Line 52: LOGL_INFO maybe switch this to DEBUG, as a non-changing TA is the default, and one might want to see only the changes (above as INFO). can be a follow-up patch, as this deviates from existing code and is not part of moving it. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/16885 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If7ddf74db3abc9b9872abe620a0aeebe3327e70a Gerrit-Change-Number: 16885 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 16 Jan 2020 20:33:19 + Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-bsc[master]: bsc_main: use higher default loglevels.
laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/16886 ) Change subject: bsc_main: use higher default loglevels. .. bsc_main: use higher default loglevels. The loglevels of DNM, DFILTER and DPCU are set to low, lets set them all to NOTICE Change-Id: I03a5426b341e9908ffc89240f97d6d3ea791b4a8 Related: OS#2577 --- M src/osmo-bsc/osmo_bsc_main.c 1 file changed, 3 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 6b14279..66310b3 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -713,7 +713,7 @@ .name = "DNM", .description = "A-bis Network Management / O (NM/OML)", .color = "\033[1;36m", - .enabled = 1, .loglevel = LOGL_INFO, + .enabled = 1, .loglevel = LOGL_NOTICE, }, [DPAG] = { .name = "DPAG", @@ -761,12 +761,12 @@ [DFILTER] = { .name = "DFILTER", .description = "BSC/NAT IMSI based filtering", - .enabled = 1, .loglevel = LOGL_DEBUG, + .enabled = 1, .loglevel = LOGL_NOTICE, }, [DPCU] = { .name = "DPCU", .description = "PCU Interface", - .enabled = 1, .loglevel = LOGL_DEBUG, + .enabled = 1, .loglevel = LOGL_NOTICE, }, [DLCLS] = { .name = "DLCLS", -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/16886 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I03a5426b341e9908ffc89240f97d6d3ea791b4a8 Gerrit-Change-Number: 16886 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged
Change in osmo-bsc[master]: bsc_main: use higher default loglevels.
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/16886 ) Change subject: bsc_main: use higher default loglevels. .. Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/16886 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I03a5426b341e9908ffc89240f97d6d3ea791b4a8 Gerrit-Change-Number: 16886 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 16 Jan 2020 20:29:51 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in docker-playground[master]: README.md: Document how to get gdb backtrace from process crash
laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/16891 ) Change subject: README.md: Document how to get gdb backtrace from process crash .. README.md: Document how to get gdb backtrace from process crash Change-Id: I507707a3ed0e7f88bcc9006612df531c848b949e --- M README.md 1 file changed, 37 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/README.md b/README.md index 05ee31f..479e045 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,43 @@ decided to scrap the file, and just keep the short list of dependencies right above where they would be needed in the `jenkins.sh`. +## Obtaining gdb backtrace from crash + +If for instance TTCN3 test is producing a crash on a program running in docker, +eg. osmo-msc, it is desirable to get a full crash report. This section describes +how to do so. + +First, open `osmo-$program/Dockerfile` and add lines to install `gdb` plus +`$program` dependency debug packages. For instance: + +``` ++RUNapt-get install -y --no-install-recommends \ ++ gdb \ ++ libosmocore-dbg libosmo-abis-dbg libosmo-netif-dbg libosmo-sigtran-dbg osmo-msc-dbg && \ ++ apt-get clean +``` + +In same `Dockerfile` file, modify configure to build with debug symbols enabled +and other interesting options, such as `--enable-sanitize`: + +``` +- ./configure --enable-smpp --enable-iu && \ ++ export CPPFLAGS="-g -O0 -fno-omit-frame-pointer" && \ ++ export CFLAGS="-g -O0 -fno-omit-frame-pointer" && \ ++ export CXXFLAGS="-g -O0 -fno-omit-frame-pointer" && \ ++ ./configure --enable-smpp --enable-iu --enable-sanitize && \ +``` + +Finally open the script you use to run the program (for instance +`ttcn3-$program-master/jenkins.sh`), and modify it to launch the process using +gdb, and to print a full backtrace when control returns to gdb (when the process +crashes): + +``` +-/bin/sh -c "osmo-msc -c /data/osmo-msc.cfg >>/data/osmo-msc.log 2>&1" ++/bin/sh -c "gdb -ex 'run' -ex 'bt full' --arg osmo-msc -c /data/osmo-msc.cfg >>/data/osmo-msc.log 2>&1" +``` + ## See also * [Overhyped Docker](http://laforge.gnumonks.org/blog/20170503-docker-overhyped/) for related rambling on why this doesn't work as well as one would -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/16891 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I507707a3ed0e7f88bcc9006612df531c848b949e Gerrit-Change-Number: 16891 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-MessageType: merged
Change in docker-playground[master]: README.md: Document how to get gdb backtrace from process crash
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/16891 ) Change subject: README.md: Document how to get gdb backtrace from process crash .. Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/16891 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I507707a3ed0e7f88bcc9006612df531c848b949e Gerrit-Change-Number: 16891 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 16 Jan 2020 20:27:31 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in docker-playground[master]: ttcn3-stp: Set default OSMO_TTCN3_BRANCH to master
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/16890 ) Change subject: ttcn3-stp: Set default OSMO_TTCN3_BRANCH to master .. Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/16890 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I6b19e50f65bca6fe556c748f3c2b633f65037dce Gerrit-Change-Number: 16890 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 16 Jan 2020 20:27:06 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in docker-playground[master]: ttcn3-stp: Set default OSMO_TTCN3_BRANCH to master
laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/16890 ) Change subject: ttcn3-stp: Set default OSMO_TTCN3_BRANCH to master .. ttcn3-stp: Set default OSMO_TTCN3_BRANCH to master Change-Id: I6b19e50f65bca6fe556c748f3c2b633f65037dce --- M ttcn3-stp-test/Dockerfile 1 file changed, 1 insertion(+), 3 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/ttcn3-stp-test/Dockerfile b/ttcn3-stp-test/Dockerfile index a755c94..e6bb9d0 100644 --- a/ttcn3-stp-test/Dockerfile +++ b/ttcn3-stp-test/Dockerfile @@ -11,9 +11,7 @@ RUNgit config --global user.email doc...@dock.er && \ git config --global user.name "Dock Er" -# FIXME: Once STP patches in laforge/stp are merged into master, then -# OSMO_TTCN3_BRANCH can be set again to "master". -ARGOSMO_TTCN3_BRANCH="laforge/stp" +ARGOSMO_TTCN3_BRANCH="master" ADDhttp://git.osmocom.org/osmo-ttcn3-hacks/patch?h=$OSMO_TTCN3_BRANCH /tmp/commit RUNcd osmo-ttcn3-hacks && \ -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/16890 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I6b19e50f65bca6fe556c748f3c2b633f65037dce Gerrit-Change-Number: 16890 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-MessageType: merged
Change in libosmo-sccp[master]: sccp: Support receiving messages with no optional params
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/16902 ) Change subject: sccp: Support receiving messages with no optional params .. Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/16902 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I745bd32c62763ba2d88e74de8644c171ef506b37 Gerrit-Change-Number: 16902 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 16 Jan 2020 20:26:44 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmo-sccp[master]: sccp: Improve logging in sccp_to_xua_opt()
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/16901 ) Change subject: sccp: Improve logging in sccp_to_xua_opt() .. Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmo-sccp/+/16901/2/src/sccp_types.c File src/sccp_types.c: https://gerrit.osmocom.org/c/libosmo-sccp/+/16901/2/src/sccp_types.c@36 PS2, Line 36: OSMO_VALUE_STRING(SCCP_PNC_SEGMENTING), same here. Having "SCCP_PNC_" as a prefix in every related log message is of no benefit to the user. -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/16901 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Icb3f18f34ecfe0602c6e491b61107a30287dcafb Gerrit-Change-Number: 16901 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 16 Jan 2020 20:26:24 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in libosmo-sccp[master]: sccp: Convert ifelse to switch statement
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/16900 ) Change subject: sccp: Convert ifelse to switch statement .. Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/16900 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I1f3129f5b949fc70913e8103ef17c696002b8ed2 Gerrit-Change-Number: 16900 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 16 Jan 2020 20:25:44 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmo-sccp[master]: examples/sccp_demo_user: log category name instead of its hex value
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/16899 ) Change subject: examples/sccp_demo_user: log category name instead of its hex value .. Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/16899 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I57afb4cacdb3c118c7570d924caa23144d192aa8 Gerrit-Change-Number: 16899 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 16 Jan 2020 20:25:27 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmo-sccp[master]: examples/sccp_test_server.c: Fix typo in log message
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/16898 ) Change subject: examples/sccp_test_server.c: Fix typo in log message .. Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/16898 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I8456893b77624402645728ce9403847065a662eb Gerrit-Change-Number: 16898 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 16 Jan 2020 20:25:18 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmo-sccp[master]: sccp_demo_user: Bind VTY to -l local address cmdline arg
laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/16894 ) Change subject: sccp_demo_user: Bind VTY to -l local address cmdline arg .. sccp_demo_user: Bind VTY to -l local address cmdline arg Change-Id: Id93db4ea2865f3f2dbfc89890389ebd02fa8172b --- M examples/sccp_demo_user.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/examples/sccp_demo_user.c b/examples/sccp_demo_user.c index 3cbcc72..4b7b6bc 100644 --- a/examples/sccp_demo_user.c +++ b/examples/sccp_demo_user.c @@ -236,7 +236,7 @@ osmo_ss7_vty_init_asp(NULL); osmo_sccp_vty_init(); - rc = telnet_init_dynif(NULL, NULL, vty_get_bind_addr(), 2324+client); + rc = telnet_init_dynif(NULL, NULL, local_address, 2324+client); if (rc < 0) { perror("Error binding VTY port"); exit(1); -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/16894 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Id93db4ea2865f3f2dbfc89890389ebd02fa8172b Gerrit-Change-Number: 16894 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged
Change in libosmo-sccp[master]: sccp: Avoid memleak of xua_msg receiving malformed sccp message
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/16897 ) Change subject: sccp: Avoid memleak of xua_msg receiving malformed sccp message .. Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/16897 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I4189fbd66e7e05ce466b3e716a357c56d788b64c Gerrit-Change-Number: 16897 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 16 Jan 2020 20:25:04 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmo-sccp[master]: sccp: Add value_string for SCCP message types
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/16896 ) Change subject: sccp: Add value_string for SCCP message types .. Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmo-sccp/+/16896/1/src/sccp_types.c File src/sccp_types.c: https://gerrit.osmocom.org/c/libosmo-sccp/+/16896/1/src/sccp_types.c@6 PS1, Line 6:OSMO_VALUE_STRING(SCCP_MSG_TYPE_CC), I would once again vote for having conscise names as used in the spec (CR/CC/...) rather than a lengthy SCCP_MSG_TYPE_CC in the logs. That kind of usage is exactly why I dislike OSMO_VALUE_STRING in many situations. -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/16896 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Ibf3ee4be88a4ca633a01fad08d4c714bfa9008bc Gerrit-Change-Number: 16896 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 16 Jan 2020 20:24:31 + Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmo-sccp[master]: sccp: Fix null ptr access on malformed or unsupported msg received
laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/16895 ) Change subject: sccp: Fix null ptr access on malformed or unsupported msg received .. sccp: Fix null ptr access on malformed or unsupported msg received Detected while running a TTCN3 sending malformed SCCP message in SCCP_Tests_RAW.ttcn: sccp_user.c:174:12: runtime error: member access within null pointer of type 'struct xua_msg' ASAN:DEADLYSIGNAL = ==6==ERROR: AddressSanitizer: SEGV on unknown address 0x0008 (pc 0x7f2a11f93c5c bp 0x7ffefcf05c50 sp 0x7ffefcf05c10 T0) #0 0x7f2a11f93c5b in mtp_user_prim_cb /tmp/libosmo-sccp/src/sccp_user.c:174 #1 0x7f2a11fb48f9 in deliver_to_mtp_user /tmp/libosmo-sccp/src/osmo_ss7_hmrt.c:94 #2 0x7f2a11fb4c8a in hmdt_message_for_distribution /tmp/libosmo-sccp/src/osmo_ss7_hmrt.c:133 #3 0x7f2a11fb5c90 in m3ua_hmdc_rx_from_l2 /tmp/libosmo-sccp/src/osmo_ss7_hmrt.c:275 #4 0x7f2a11f6f5c2 in m3ua_rx_xfer /tmp/libosmo-sccp/src/m3ua.c:586 #5 0x7f2a11f70480 in m3ua_rx_msg /tmp/libosmo-sccp/src/m3ua.c:739 #6 0x7f2a11faee35 in xua_srv_conn_cb /tmp/libosmo-sccp/src/osmo_ss7.c:1623 #7 0x7f2a0f46d082 (/usr/lib/x86_64-linux-gnu/libosmonetif.so.8+0xb082) #8 0x7f2a1186c0be (/usr/lib/x86_64-linux-gnu/libosmocore.so.12+0xc0be) #9 0x7f2a1186c735 in osmo_select_main (/usr/lib/x86_64-linux-gnu/libosmocore.so.12+0xc735) #10 0x557378718219 in main /tmp/libosmo-sccp/examples/sccp_demo_user.c:264 #11 0x7f2a105ad2e0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202e0) #12 0x557378717059 in _start (/usr/local/bin/sccp_demo_user+0x6059) Change-Id: Idafa8c9693d98ecd214b62155372e4db69e2a4a4 --- M src/sccp_user.c 1 file changed, 6 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/sccp_user.c b/src/sccp_user.c index 9df5817..386f424 100644 --- a/src/sccp_user.c +++ b/src/sccp_user.c @@ -171,6 +171,12 @@ case OSMO_PRIM(OSMO_MTP_PRIM_TRANSFER, PRIM_OP_INDICATION): /* Convert from SCCP to SUA in xua_msg format */ xua = osmo_sccp_to_xua(oph->msg); + if (!xua) { + LOGP(DLSCCP, LOGL_ERROR, "Couldn't convert SCCP to SUA: %s\n", + msgb_hexdump(oph->msg)); + rc = -1; + break; + } xua->mtp = omp->u.transfer; /* hand this primitive into SCCP via the SCRC code */ rc = scrc_rx_mtp_xfer_ind_xua(inst, xua); -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/16895 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Idafa8c9693d98ecd214b62155372e4db69e2a4a4 Gerrit-Change-Number: 16895 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged
Change in libosmo-sccp[master]: sccp: Fix null ptr access on malformed or unsupported msg received
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/16895 ) Change subject: sccp: Fix null ptr access on malformed or unsupported msg received .. Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/16895 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Idafa8c9693d98ecd214b62155372e4db69e2a4a4 Gerrit-Change-Number: 16895 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 16 Jan 2020 20:23:16 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmo-sccp[master]: sccp_demo_user: Bind VTY to -l local address cmdline arg
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/16894 ) Change subject: sccp_demo_user: Bind VTY to -l local address cmdline arg .. Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/16894 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Id93db4ea2865f3f2dbfc89890389ebd02fa8172b Gerrit-Change-Number: 16894 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 16 Jan 2020 20:22:32 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmo-sccp[master]: sccp: Support receiving messages with no optional params
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/16902 ) Change subject: sccp: Support receiving messages with no optional params .. sccp: Support receiving messages with no optional params Change-Id: I745bd32c62763ba2d88e74de8644c171ef506b37 --- M src/sccp2sua.c 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/02/16902/1 diff --git a/src/sccp2sua.c b/src/sccp2sua.c index b829cf6..2be27ea 100644 --- a/src/sccp2sua.c +++ b/src/sccp2sua.c @@ -705,6 +705,12 @@ /* some bounds checking */ if (ptr_opt < msg->data || ptr_opt > msg->tail) return NULL; + + /* Q.713 section 2.3 "Coding of pointers": pointer value all zeros used + to indicate that no optional param is present. */ + if (*ptr_opt == 0) + return xua; + opt_start = ptr_opt + *ptr_opt; if (opt_start > msg->tail) return NULL; -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/16902 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I745bd32c62763ba2d88e74de8644c171ef506b37 Gerrit-Change-Number: 16902 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange
Change in libosmo-sccp[master]: sccp: Improve logging in sccp_to_xua_opt()
Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmo-sccp/+/16901 to look at the new patch set (#2). Change subject: sccp: Improve logging in sccp_to_xua_opt() .. sccp: Improve logging in sccp_to_xua_opt() Change-Id: Icb3f18f34ecfe0602c6e491b61107a30287dcafb --- M include/osmocom/sccp/sccp_types.h M src/sccp2sua.c M src/sccp_types.c 3 files changed, 40 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/01/16901/2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/16901 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Icb3f18f34ecfe0602c6e491b61107a30287dcafb Gerrit-Change-Number: 16901 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset
Change in libosmo-sccp[master]: sccp: Convert ifelse to switch statement
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/16900 ) Change subject: sccp: Convert ifelse to switch statement .. sccp: Convert ifelse to switch statement Change-Id: I1f3129f5b949fc70913e8103ef17c696002b8ed2 --- M src/sccp2sua.c 1 file changed, 8 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/00/16900/1 diff --git a/src/sccp2sua.c b/src/sccp2sua.c index 1106888..e68662f 100644 --- a/src/sccp2sua.c +++ b/src/sccp2sua.c @@ -712,13 +712,14 @@ oneopt = opt_start; while (oneopt < msg->tail) { - uint8_t opt_type = oneopt[0]; + enum sccp_parameter_name_codes opt_type = oneopt[0]; + uint8_t opt_len; + uint16_t opt_len16; - if (opt_type == SCCP_PNC_END_OF_OPTIONAL) + switch (opt_type) { + case SCCP_PNC_END_OF_OPTIONAL: return xua; - - if (opt_type == SCCP_PNC_LONG_DATA) { - uint16_t opt_len16; + case SCCP_PNC_LONG_DATA: /* two byte length field */ if (oneopt + 2 > msg->tail) return NULL; @@ -727,8 +728,8 @@ return NULL; xua_msg_add_sccp_opt(xua, opt_type, opt_len16, oneopt+3); oneopt += 3 + opt_len16; - } else { - uint8_t opt_len; + break; + default: /* one byte length field */ if (oneopt + 1 > msg->tail) return NULL; -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/16900 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I1f3129f5b949fc70913e8103ef17c696002b8ed2 Gerrit-Change-Number: 16900 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange
Change in libosmo-sccp[master]: sccp: Improve logging in sccp_to_xua_opt()
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/16901 ) Change subject: sccp: Improve logging in sccp_to_xua_opt() .. sccp: Improve logging in sccp_to_xua_opt() Change-Id: Icb3f18f34ecfe0602c6e491b61107a30287dcafb --- M include/osmocom/sccp/sccp_types.h M src/sccp2sua.c M src/sccp_types.c 3 files changed, 40 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/01/16901/1 diff --git a/include/osmocom/sccp/sccp_types.h b/include/osmocom/sccp/sccp_types.h index 71cbb0f..f43f822 100644 --- a/include/osmocom/sccp/sccp_types.h +++ b/include/osmocom/sccp/sccp_types.h @@ -80,6 +80,10 @@ SCCP_PNC_LONG_DATA = 19, }; +extern const struct value_string osmo_sccp_pnc_names[]; +static inline const char *osmo_sccp_pnc_name(enum sccp_message_types val) +{ return get_value_string(osmo_sccp_pnc_names, val); } + /* Figure 3/Q.713 Called/calling party address */ enum { SCCP_TITLE_IND_NONE = 0, diff --git a/src/sccp2sua.c b/src/sccp2sua.c index e68662f..b829cf6 100644 --- a/src/sccp2sua.c +++ b/src/sccp2sua.c @@ -711,10 +711,11 @@ oneopt = opt_start; + enum sccp_parameter_name_codes opt_type = 0; /* dummy value not used */ while (oneopt < msg->tail) { - enum sccp_parameter_name_codes opt_type = oneopt[0]; uint8_t opt_len; uint16_t opt_len16; + opt_type = oneopt[0]; switch (opt_type) { case SCCP_PNC_END_OF_OPTIONAL: @@ -722,25 +723,30 @@ case SCCP_PNC_LONG_DATA: /* two byte length field */ if (oneopt + 2 > msg->tail) - return NULL; + goto malformed; opt_len16 = oneopt[1] << 8 | oneopt[2]; if (oneopt + 3 + opt_len16 > msg->tail) - return NULL; + goto malformed; xua_msg_add_sccp_opt(xua, opt_type, opt_len16, oneopt+3); oneopt += 3 + opt_len16; break; default: /* one byte length field */ if (oneopt + 1 > msg->tail) - return NULL; + goto malformed; opt_len = oneopt[1]; if (oneopt + 2 + opt_len > msg->tail) - return NULL; + goto malformed; xua_msg_add_sccp_opt(xua, opt_type, opt_len, oneopt+2); oneopt += 2 + opt_len; } } + LOGP(DLSUA, LOGL_ERROR, "Parameter %s not found\n", osmo_sccp_pnc_name(SCCP_PNC_END_OF_OPTIONAL)); + return NULL; + +malformed: + LOGP(DLSUA, LOGL_ERROR, "Malformed parameter %s (%d)\n", osmo_sccp_pnc_name(opt_type), opt_type); return NULL; } diff --git a/src/sccp_types.c b/src/sccp_types.c index efe9aca..9370f9a 100644 --- a/src/sccp_types.c +++ b/src/sccp_types.c @@ -24,3 +24,28 @@ OSMO_VALUE_STRING(SCCP_MSG_TYPE_LUDTS), {} }; + +/* Table 2/Q.713 - SCCP parameter name codes */ +const struct value_string osmo_sccp_pnc_names[] = { + OSMO_VALUE_STRING(SCCP_PNC_END_OF_OPTIONAL), + OSMO_VALUE_STRING(SCCP_PNC_DESTINATION_LOCAL_REFERENCE), + OSMO_VALUE_STRING(SCCP_PNC_SOURCE_LOCAL_REFERENCE), + OSMO_VALUE_STRING(SCCP_PNC_CALLED_PARTY_ADDRESS), + OSMO_VALUE_STRING(SCCP_PNC_CALLING_PARTY_ADDRESS), + OSMO_VALUE_STRING(SCCP_PNC_PROTOCOL_CLASS), + OSMO_VALUE_STRING(SCCP_PNC_SEGMENTING), + OSMO_VALUE_STRING(SCCP_PNC_RECEIVE_SEQ_NUMBER), + OSMO_VALUE_STRING(SCCP_PNC_SEQUENCING), + OSMO_VALUE_STRING(SCCP_PNC_CREDIT), + OSMO_VALUE_STRING(SCCP_PNC_RELEASE_CAUSE), + OSMO_VALUE_STRING(SCCP_PNC_RETURN_CAUSE), + OSMO_VALUE_STRING(SCCP_PNC_RESET_CAUSE), + OSMO_VALUE_STRING(SCCP_PNC_ERROR_CAUSE), + OSMO_VALUE_STRING(SCCP_PNC_REFUSAL_CAUSE), + OSMO_VALUE_STRING(SCCP_PNC_DATA), + OSMO_VALUE_STRING(SCCP_PNC_SEGMENTATION), + OSMO_VALUE_STRING(SCCP_PNC_HOP_COUNTER), + OSMO_VALUE_STRING(SCCP_PNC_IMPORTANCE), + OSMO_VALUE_STRING(SCCP_PNC_LONG_DATA), + {} +}; -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/16901 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Icb3f18f34ecfe0602c6e491b61107a30287dcafb Gerrit-Change-Number: 16901 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange
Change in libosmo-sccp[master]: examples/sccp_demo_user: log category name instead of its hex value
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/16899 ) Change subject: examples/sccp_demo_user: log category name instead of its hex value .. examples/sccp_demo_user: log category name instead of its hex value Change-Id: I57afb4cacdb3c118c7570d924caa23144d192aa8 --- M examples/sccp_demo_user.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/99/16899/1 diff --git a/examples/sccp_demo_user.c b/examples/sccp_demo_user.c index 4b7b6bc..8cf3c33 100644 --- a/examples/sccp_demo_user.c +++ b/examples/sccp_demo_user.c @@ -72,6 +72,8 @@ void *tall_ctx = talloc_named_const(NULL, 1, "example"); msgb_talloc_ctx_init(tall_ctx, 0); osmo_init_logging2(tall_ctx, _info); + log_set_print_category(osmo_stderr_target, true); + log_set_print_category_hex(osmo_stderr_target, false); for (i = 0; i < ARRAY_SIZE(log_cats); i++) log_set_category_filter(osmo_stderr_target, log_cats[i], 1, LOGL_DEBUG); -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/16899 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I57afb4cacdb3c118c7570d924caa23144d192aa8 Gerrit-Change-Number: 16899 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange
Change in libosmo-sccp[master]: examples/sccp_test_server.c: Fix typo in log message
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/16898 ) Change subject: examples/sccp_test_server.c: Fix typo in log message .. examples/sccp_test_server.c: Fix typo in log message Change-Id: I8456893b77624402645728ce9403847065a662eb --- M examples/sccp_test_server.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/98/16898/1 diff --git a/examples/sccp_test_server.c b/examples/sccp_test_server.c index 6249e45..a66cb21 100644 --- a/examples/sccp_test_server.c +++ b/examples/sccp_test_server.c @@ -87,7 +87,7 @@ switch (OSMO_PRIM_HDR(_prim->oph)) { case OSMO_PRIM(OSMO_SCU_PRIM_N_UNITDATA, PRIM_OP_INDICATION): - printf("%s: N-UNITDATA.ind: Connectiong back to sender\n", __func__); + printf("%s: N-UNITDATA.ind: Connecting back to sender\n", __func__); osmo_sccp_tx_conn_req(scu, conn_id++, _prim->u.unitdata.called_addr, _prim->u.unitdata.calling_addr, -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/16898 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I8456893b77624402645728ce9403847065a662eb Gerrit-Change-Number: 16898 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange
Change in libosmo-sccp[master]: sccp: Add value_string for SCCP message types
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/16896 ) Change subject: sccp: Add value_string for SCCP message types .. sccp: Add value_string for SCCP message types Change-Id: Ibf3ee4be88a4ca633a01fad08d4c714bfa9008bc --- M include/osmocom/sccp/sccp_types.h M src/Makefile.am M src/sccp2sua.c A src/sccp_types.c 4 files changed, 36 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/96/16896/1 diff --git a/include/osmocom/sccp/sccp_types.h b/include/osmocom/sccp/sccp_types.h index 18b54f4..71cbb0f 100644 --- a/include/osmocom/sccp/sccp_types.h +++ b/include/osmocom/sccp/sccp_types.h @@ -26,6 +26,7 @@ #include #include +#include /* Table 1/Q.713 - SCCP message types */ enum sccp_message_types { @@ -51,6 +52,10 @@ SCCP_MSG_TYPE_LUDTS = 20 }; +extern const struct value_string osmo_sccp_msg_type_names[]; +static inline const char *osmo_sccp_msg_type_name(enum sccp_message_types val) +{ return get_value_string(osmo_sccp_msg_type_names, val); } + /* Table 2/Q.713 - SCCP parameter name codes */ enum sccp_parameter_name_codes { SCCP_PNC_END_OF_OPTIONAL= 0, diff --git a/src/Makefile.am b/src/Makefile.am index 4ef753c..484886c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -29,7 +29,7 @@ libosmo_sigtran_la_SOURCES = sccp_sap.c sua.c m3ua.c xua_msg.c sccp_helpers.c \ sccp2sua.c sccp_scrc.c sccp_sclc.c sccp_scoc.c \ -sccp_user.c xua_rkm.c xua_default_lm_fsm.c \ +sccp_user.c sccp_types.c xua_rkm.c xua_default_lm_fsm.c \ osmo_ss7.c osmo_ss7_hmrt.c xua_asp_fsm.c xua_as_fsm.c \ osmo_ss7_vty.c sccp_vty.c ipa.c libosmo_sigtran_la_LDFLAGS = -version-info $(LIBVERSION) -no-undefined -export-symbols-regex '^osmo_' diff --git a/src/sccp2sua.c b/src/sccp2sua.c index f68f9a9..7e6b3a3 100644 --- a/src/sccp2sua.c +++ b/src/sccp2sua.c @@ -1341,6 +1341,10 @@ case SCCP_MSG_TYPE_XUDTS: case SCCP_MSG_TYPE_LUDT: case SCCP_MSG_TYPE_LUDTS: + LOGP(DLSUA, LOGL_ERROR, "Unsupported SCCP message %s\n", + osmo_sccp_msg_type_name(msg->l2h[0])); + xua_msg_free(xua); + return NULL; default: LOGP(DLSUA, LOGL_ERROR, "Unsupported SCCP message type %u\n", msg->l2h[0]); diff --git a/src/sccp_types.c b/src/sccp_types.c new file mode 100644 index 000..efe9aca --- /dev/null +++ b/src/sccp_types.c @@ -0,0 +1,26 @@ +#include + +/* Table 1/Q.713 - SCCP message types */ +const struct value_string osmo_sccp_msg_type_names[] = { + OSMO_VALUE_STRING(SCCP_MSG_TYPE_CR), + OSMO_VALUE_STRING(SCCP_MSG_TYPE_CC), + OSMO_VALUE_STRING(SCCP_MSG_TYPE_CREF), + OSMO_VALUE_STRING(SCCP_MSG_TYPE_RLSD), + OSMO_VALUE_STRING(SCCP_MSG_TYPE_RLC), + OSMO_VALUE_STRING(SCCP_MSG_TYPE_DT1), + OSMO_VALUE_STRING(SCCP_MSG_TYPE_DT2), + OSMO_VALUE_STRING(SCCP_MSG_TYPE_AK), + OSMO_VALUE_STRING(SCCP_MSG_TYPE_UDT), + OSMO_VALUE_STRING(SCCP_MSG_TYPE_UDTS), + OSMO_VALUE_STRING(SCCP_MSG_TYPE_ED), + OSMO_VALUE_STRING(SCCP_MSG_TYPE_EA), + OSMO_VALUE_STRING(SCCP_MSG_TYPE_RSR), + OSMO_VALUE_STRING(SCCP_MSG_TYPE_RSC), + OSMO_VALUE_STRING(SCCP_MSG_TYPE_ERR), + OSMO_VALUE_STRING(SCCP_MSG_TYPE_IT), + OSMO_VALUE_STRING(SCCP_MSG_TYPE_XUDT), + OSMO_VALUE_STRING(SCCP_MSG_TYPE_XUDTS), + OSMO_VALUE_STRING(SCCP_MSG_TYPE_LUDT), + OSMO_VALUE_STRING(SCCP_MSG_TYPE_LUDTS), + {} +}; -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/16896 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Ibf3ee4be88a4ca633a01fad08d4c714bfa9008bc Gerrit-Change-Number: 16896 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange
Change in libosmo-sccp[master]: sccp: Avoid memleak of xua_msg receiving malformed sccp message
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/16897 ) Change subject: sccp: Avoid memleak of xua_msg receiving malformed sccp message .. sccp: Avoid memleak of xua_msg receiving malformed sccp message first, xua_msg is allocated internally in the function. Then depending on msg type different functions are called. All of those functions either return the same input xua msg pointer or NULL. If they return NULL due to parsing failure, we need to free the internally allocated xua pointer. Change-Id: I4189fbd66e7e05ce466b3e716a357c56d788b64c --- M src/sccp2sua.c 1 file changed, 49 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/97/16897/1 diff --git a/src/sccp2sua.c b/src/sccp2sua.c index 7e6b3a3..1106888 100644 --- a/src/sccp2sua.c +++ b/src/sccp2sua.c @@ -998,6 +998,7 @@ local_ref->octet3 = tmp32 & 0xff; } +/*! \returns \ref xua in case of success, NULL on error (xua not freed!) */ static struct xua_msg *sccp_to_xua_cr(struct msgb *msg, struct xua_msg *xua) { struct sccp_connection_request *req = (struct sccp_connection_request *)msg->l2h; @@ -1013,6 +1014,7 @@ return sccp_to_xua_opt(msg, >optional_start, xua); } +/*! \returns \ref xua in case of success, NULL on error (xua not freed!) */ static int sua_to_sccp_cr(struct msgb *msg, struct xua_msg *xua) { struct sccp_connection_request *req; @@ -1029,6 +1031,7 @@ return xua_ies_to_sccp_opts(msg, >optional_start, req->type, xua); } +/*! \returns \ref xua in case of success, NULL on error (xua not freed!) */ static struct xua_msg *sccp_to_xua_cc(struct msgb *msg, struct xua_msg *xua) { struct sccp_connection_confirm *cnf = (struct sccp_connection_confirm *)msg->l2h; @@ -1041,6 +1044,7 @@ return sccp_to_xua_opt(msg, >optional_start, xua); } +/*! \returns \ref xua in case of success, NULL on error (xua not freed!) */ static int sua_to_sccp_cc(struct msgb *msg, struct xua_msg *xua) { struct sccp_connection_confirm *cnf; @@ -1055,6 +1059,7 @@ return xua_ies_to_sccp_opts(msg, >optional_start, cnf->type, xua); } +/*! \returns \ref xua in case of success, NULL on error (xua not freed!) */ static struct xua_msg *sccp_to_xua_cref(struct msgb *msg, struct xua_msg *xua) { struct sccp_connection_refused *ref = (struct sccp_connection_refused *)msg->l2h; @@ -1066,6 +1071,7 @@ return sccp_to_xua_opt(msg, >optional_start, xua); } +/*! \returns \ref xua in case of success, NULL on error (xua not freed!) */ static int sua_to_sccp_cref(struct msgb *msg, struct xua_msg *xua) { struct sccp_connection_refused *ref; @@ -1079,6 +1085,7 @@ return xua_ies_to_sccp_opts(msg, >optional_start, ref->type, xua); } +/*! \returns \ref xua in case of success, NULL on error (xua not freed!) */ static struct xua_msg *sccp_to_xua_rlsd(struct msgb *msg, struct xua_msg *xua) { struct sccp_connection_released *rlsd = (struct sccp_connection_released *)msg->l2h; @@ -1106,6 +1113,7 @@ return xua_ies_to_sccp_opts(msg, >optional_start, rlsd->type, xua); } +/*! \returns \ref xua in case of success, NULL on error (xua not freed!) */ static struct xua_msg *sccp_to_xua_rlc(struct msgb *msg, struct xua_msg *xua) { struct sccp_connection_release_complete *rlc; @@ -1129,6 +1137,7 @@ return 0; } +/*! \returns \ref xua in case of success, NULL on error (xua not freed!) */ static struct xua_msg *sccp_to_xua_dt1(struct msgb *msg, struct xua_msg *xua) { struct sccp_data_form1 *dt1 = (struct sccp_data_form1 *) msg->l2h; @@ -1157,6 +1166,7 @@ return 0; } +/*! \returns \ref xua in case of success, NULL on error (xua not freed!) */ static struct xua_msg *sccp_to_xua_udt(struct msgb *msg, struct xua_msg *xua) { struct sccp_data_unitdata *udt = (struct sccp_data_unitdata *)msg->l2h; @@ -1192,6 +1202,7 @@ return 0; } +/*! \returns \ref xua in case of success, NULL on error (xua not freed!) */ static struct xua_msg *sccp_to_xua_udts(struct msgb *msg, struct xua_msg *xua) { struct sccp_data_unitdata_service *udts; @@ -1228,6 +1239,7 @@ return 0; } +/*! \returns \ref xua in case of success, NULL on error (xua not freed!) */ static struct xua_msg *sccp_to_xua_it(struct msgb *msg, struct xua_msg *xua) { struct sccp_data_it *it = (struct sccp_data_it *)msg->l2h; @@ -1261,6 +1273,7 @@ return 0; } +/*! \returns \ref xua in case of success, NULL on error (xua not freed!) */ static struct xua_msg *sccp_to_xua_err(struct msgb *msg, struct xua_msg *xua) { struct sccp_proto_err *err = (struct sccp_proto_err *)msg->l2h; @@ -1302,34 +1315,54 @@ switch (msg->l2h[0]) { case SCCP_MSG_TYPE_CR: xua->hdr = XUA_HDR(SUA_MSGC_CO, SUA_CO_CORE); - return
Change in libosmo-sccp[master]: sccp: Fix null ptr access on malformed or unsupported msg received
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/16895 ) Change subject: sccp: Fix null ptr access on malformed or unsupported msg received .. sccp: Fix null ptr access on malformed or unsupported msg received Detected while running a TTCN3 sending malformed SCCP message in SCCP_Tests_RAW.ttcn: sccp_user.c:174:12: runtime error: member access within null pointer of type 'struct xua_msg' ASAN:DEADLYSIGNAL = ==6==ERROR: AddressSanitizer: SEGV on unknown address 0x0008 (pc 0x7f2a11f93c5c bp 0x7ffefcf05c50 sp 0x7ffefcf05c10 T0) #0 0x7f2a11f93c5b in mtp_user_prim_cb /tmp/libosmo-sccp/src/sccp_user.c:174 #1 0x7f2a11fb48f9 in deliver_to_mtp_user /tmp/libosmo-sccp/src/osmo_ss7_hmrt.c:94 #2 0x7f2a11fb4c8a in hmdt_message_for_distribution /tmp/libosmo-sccp/src/osmo_ss7_hmrt.c:133 #3 0x7f2a11fb5c90 in m3ua_hmdc_rx_from_l2 /tmp/libosmo-sccp/src/osmo_ss7_hmrt.c:275 #4 0x7f2a11f6f5c2 in m3ua_rx_xfer /tmp/libosmo-sccp/src/m3ua.c:586 #5 0x7f2a11f70480 in m3ua_rx_msg /tmp/libosmo-sccp/src/m3ua.c:739 #6 0x7f2a11faee35 in xua_srv_conn_cb /tmp/libosmo-sccp/src/osmo_ss7.c:1623 #7 0x7f2a0f46d082 (/usr/lib/x86_64-linux-gnu/libosmonetif.so.8+0xb082) #8 0x7f2a1186c0be (/usr/lib/x86_64-linux-gnu/libosmocore.so.12+0xc0be) #9 0x7f2a1186c735 in osmo_select_main (/usr/lib/x86_64-linux-gnu/libosmocore.so.12+0xc735) #10 0x557378718219 in main /tmp/libosmo-sccp/examples/sccp_demo_user.c:264 #11 0x7f2a105ad2e0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202e0) #12 0x557378717059 in _start (/usr/local/bin/sccp_demo_user+0x6059) Change-Id: Idafa8c9693d98ecd214b62155372e4db69e2a4a4 --- M src/sccp_user.c 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/95/16895/1 diff --git a/src/sccp_user.c b/src/sccp_user.c index 9df5817..386f424 100644 --- a/src/sccp_user.c +++ b/src/sccp_user.c @@ -171,6 +171,12 @@ case OSMO_PRIM(OSMO_MTP_PRIM_TRANSFER, PRIM_OP_INDICATION): /* Convert from SCCP to SUA in xua_msg format */ xua = osmo_sccp_to_xua(oph->msg); + if (!xua) { + LOGP(DLSCCP, LOGL_ERROR, "Couldn't convert SCCP to SUA: %s\n", + msgb_hexdump(oph->msg)); + rc = -1; + break; + } xua->mtp = omp->u.transfer; /* hand this primitive into SCCP via the SCRC code */ rc = scrc_rx_mtp_xfer_ind_xua(inst, xua); -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/16895 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Idafa8c9693d98ecd214b62155372e4db69e2a4a4 Gerrit-Change-Number: 16895 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange
Change in libosmo-sccp[master]: sccp_demo_user: Bind VTY to -l local address cmdline arg
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/16894 ) Change subject: sccp_demo_user: Bind VTY to -l local address cmdline arg .. sccp_demo_user: Bind VTY to -l local address cmdline arg Change-Id: Id93db4ea2865f3f2dbfc89890389ebd02fa8172b --- M examples/sccp_demo_user.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/94/16894/1 diff --git a/examples/sccp_demo_user.c b/examples/sccp_demo_user.c index 3cbcc72..4b7b6bc 100644 --- a/examples/sccp_demo_user.c +++ b/examples/sccp_demo_user.c @@ -236,7 +236,7 @@ osmo_ss7_vty_init_asp(NULL); osmo_sccp_vty_init(); - rc = telnet_init_dynif(NULL, NULL, vty_get_bind_addr(), 2324+client); + rc = telnet_init_dynif(NULL, NULL, local_address, 2324+client); if (rc < 0) { perror("Error binding VTY port"); exit(1); -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/16894 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Id93db4ea2865f3f2dbfc89890389ebd02fa8172b Gerrit-Change-Number: 16894 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange
Change in docker-playground[master]: Introduuce ttcn-sccp dockerized setup
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/16893 ) Change subject: Introduuce ttcn-sccp dockerized setup .. Introduuce ttcn-sccp dockerized setup Since examples/sccp_demo_user (the binary used to test SCCP) is not installed by libosmo-sccp.git during make install, we need to install it manually after "make" step, and hence it's only available in osmo-stp-master, because in osmo-stp-latest we used packaged files. Change-Id: I5a7e6ff5f6e5f6e34d6a5ab29bd760a6f9d49c4b --- M osmo-stp-master/Dockerfile A ttcn3-sccp-test/Dockerfile A ttcn3-sccp-test/Makefile A ttcn3-sccp-test/SCCP_Tests.cfg A ttcn3-sccp-test/jenkins.sh 5 files changed, 111 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/93/16893/1 diff --git a/osmo-stp-master/Dockerfile b/osmo-stp-master/Dockerfile index 622d0b9..e76e5a9 100644 --- a/osmo-stp-master/Dockerfile +++ b/osmo-stp-master/Dockerfile @@ -32,6 +32,7 @@ autoreconf -fi && \ ./configure && \ make -j8 install && \ + install examples/sccp_demo_user /usr/local/bin/ && \ ldconfig VOLUME /data diff --git a/ttcn3-sccp-test/Dockerfile b/ttcn3-sccp-test/Dockerfile new file mode 100644 index 000..0c70027 --- /dev/null +++ b/ttcn3-sccp-test/Dockerfile @@ -0,0 +1,37 @@ +ARGUSER +FROM $USER/debian-stretch-titan + +RUNmkdir /root/projects && (cd /root/projects && ln -sf / git) +RUNgit clone git://git.osmocom.org/osmo-ttcn3-hacks.git + +RUNcd osmo-ttcn3-hacks && \ + git checkout -f -B master origin/master && \ + make deps + +RUNgit config --global user.email doc...@dock.er && \ + git config --global user.name "Dock Er" + +ARGOSMO_TTCN3_BRANCH="master" + +ADDhttp://git.osmocom.org/osmo-ttcn3-hacks/patch?h=$OSMO_TTCN3_BRANCH /tmp/commit +RUNcd osmo-ttcn3-hacks && \ + git fetch && \ + git checkout $OSMO_TTCN3_BRANCH && \ + (git symbolic-ref -q HEAD && git reset --hard origin/$OSMO_TTCN3_BRANCH || exit 1); \ + git rev-parse --abbrev-ref HEAD && git rev-parse HEAD && \ + make sccp + +VOLUME /data + +RUNln -s /osmo-ttcn3-hacks/ttcn3-tcpdump-start.sh / && \ + ln -s /osmo-ttcn3-hacks/ttcn3-tcpdump-stop.sh / + +COPY SCCP_Tests.cfg /data/SCCP_Tests.cfg + +CMDcd /data && \ + /osmo-ttcn3-hacks/start-testsuite.sh /osmo-ttcn3-hacks/sccp/SCCP_Tests; \ + exit_code=$?; \ + echo "pespin1: $PWD"; ls -lha .; \ + echo "pespin2:"; ls -lha SCCP_Tests*.log; \ + /osmo-ttcn3-hacks/log_merge.sh SCCP_Tests --rm; \ + exit $exit_code diff --git a/ttcn3-sccp-test/Makefile b/ttcn3-sccp-test/Makefile new file mode 100644 index 000..cbcd544 --- /dev/null +++ b/ttcn3-sccp-test/Makefile @@ -0,0 +1,3 @@ +RUN_ARGS?=--sysctl net.ipv6.conf.all.disable_ipv6=0 --rm --network sigtran --ip 172.18.2.202 -v ggsn-test-vol:/data + +include ../make/Makefile diff --git a/ttcn3-sccp-test/SCCP_Tests.cfg b/ttcn3-sccp-test/SCCP_Tests.cfg new file mode 100644 index 000..7e6d9a0 --- /dev/null +++ b/ttcn3-sccp-test/SCCP_Tests.cfg @@ -0,0 +1,30 @@ +[ORDERED_INCLUDE] +"/osmo-ttcn3-hacks/Common.cfg" +"/osmo-ttcn3-hacks/sccp/SCCP_Tests.default" + +[LOGGING] +*.JUnitLogger.testsuite_name := "SCCP_Tests" + +[TESTPORT_PARAMETERS] +*.SCCP_DEMO_USER_VTY.CTRL_HOSTNAME := "172.18.22.200" +*.SCCP_DEMO_USER_VTY.CTRL_PORTNUM := "2325" + +[MODULE_PARAMETERS] +SCCP_Tests.sccp_cfg := { +{ +sccp_service_type := "mtp3_itu", +sctp_addr := { 2905, "172.18.22.203", 2905, "172.18.22.200" }, +own_pc := 185, +own_ssn := 254, +peer_pc := 23, +peer_ssn := 254, +sio := '83'O, +rctx := 0 +} +}; + +[MAIN_CONTROLLER] + +[EXECUTE] +SCCP_Tests.control +SCCP_Tests_RAW.control diff --git a/ttcn3-sccp-test/jenkins.sh b/ttcn3-sccp-test/jenkins.sh new file mode 100755 index 000..21f301c --- /dev/null +++ b/ttcn3-sccp-test/jenkins.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +. ../jenkins-common.sh +IMAGE_SUFFIX="${IMAGE_SUFFIX:-master}" +# Always require osmo-stp-master since is the only with sccp_demo_user installed +docker_images_require \ + "debian-stretch-build" \ + "osmo-stp-master" \ + "debian-stretch-titan" \ + "ttcn3-sccp-test" + +mkdir $VOL_BASE_DIR/sccp-tester +cp SCCP_Tests.cfg $VOL_BASE_DIR/sccp-tester/ + +mkdir $VOL_BASE_DIR/sccp +#cp osmo-sccp.cfg $VOL_BASE_DIR/sccp/ + +network_create 172.18.22.0/24 + +echo Starting container with sccp_demo_user +docker run --rm \ + --network $NET_NAME --ip 172.18.22.200 \ + -v $VOL_BASE_DIR/sccp:/data \ + --name ${BUILD_TAG}-stp -d \ + $REPO_USER/osmo-stp-master \ + /bin/sh -c
Change in osmo-ci[master]: OBS: clone from gerrit.osmocom.org
osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/16561 ) Change subject: OBS: clone from gerrit.osmocom.org .. Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/16561 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Id8f08a1bc10d6c81be9ad44c60646e2ea9f6cf4e Gerrit-Change-Number: 16561 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 16 Jan 2020 14:41:58 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-ci[master]: OBS: clone from gerrit.osmocom.org
osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/16561 ) Change subject: OBS: clone from gerrit.osmocom.org .. OBS: clone from gerrit.osmocom.org Work around "garbage at end of loose object" errors that occasionally cause these jenkins jobs to fail. A few repositories are not hosted on gerrit, so they still get cloned from git.osmocom.org. However, having almost all repositories cloned from gerrit should improve the situation a lot. Related: OS#4083 Change-Id: Id8f08a1bc10d6c81be9ad44c60646e2ea9f6cf4e --- M scripts/common.sh M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 3 files changed, 20 insertions(+), 4 deletions(-) Approvals: laforge: Looks good to me, approved osmith: Verified diff --git a/scripts/common.sh b/scripts/common.sh index 340bac8..1c2dfe0 100644 --- a/scripts/common.sh +++ b/scripts/common.sh @@ -1,6 +1,7 @@ #!/bin/sh # Various functions and variables used in multiple osmo-ci shell scripts OSMO_GIT_URL="https://git.osmocom.org; +OSMO_GIT_URL_GERRIT="https://gerrit.osmocom.org; # Osmocom repositories of which we want to build release tarballs automatically, and list the current versions at # https://jenkins.osmocom.org/jenkins/job/Osmocom-list-commits/lastSuccessfulBuild/artifact/commits.txt @@ -99,6 +100,20 @@ fi } +# Print git clone URL for an Osmocom git repository. Prefer the gerrit clone URL, because cloning from the regular URL +# sometimes results in the "garbage at end of loose object" error (OS#4083). +# $1: Osmocom project (e.g. "osmo-hlr") +osmo_git_clone_url() { + case "$1" in + rtl-sdr|osmo-fl2k|libosmo-dsp|libgtpnl|libasn1c|libusrp|libsmpp34) + echo "$OSMO_GIT_URL"/"$1" + ;; + *) + echo "$OSMO_GIT_URL_GERRIT"/"$1" + ;; + esac +} + # Print the subdirectory of the repository where the source lies (configure.ac etc.). # Print nothing when the source is in the topdir of the repository. osmo_source_subdir() { diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 509bced..3770ee1 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -55,7 +55,7 @@ if [ "$project" = "limesuite" ]; then [ -d "$project" ] || git clone "https://github.com/myriadrf/LimeSuite; "$project" else -[ -d "$project" ] || osmo_git_clone_date "https://git.osmocom.org/$project; +[ -d "$project" ] || osmo_git_clone_date "$(osmo_git_clone_url "$project")" fi cd "$project" git fetch @@ -131,6 +131,7 @@ build_osmocom() { prepare + # NOTE: when adding a repository that is not in gerrit, adjust osmo_git_clone_url() checkout limesuite checkout osmo-gsm-manuals checkout libosmocore diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index 1c76cc1..d49d968 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -64,14 +64,13 @@ checkout() { local name=$1 local branch=$2 - local url="https://git.osmocom.org; cd "$REPO" if [ -n "$branch" ] ; then -osmo_git_clone_date "$url/$name" -b "$branch" +osmo_git_clone_date "$(osmo_git_clone_url "$name")" -b "$branch" else -osmo_git_clone_date "$url/$name" +osmo_git_clone_date "$(osmo_git_clone_url "$name")" fi cd - @@ -177,6 +176,7 @@ prepare + # NOTE: when adding a repository that is not in gerrit, adjust osmo_git_clone_url() checkout_limesuite checkout osmo-gsm-manuals checkout libosmocore -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/16561 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Id8f08a1bc10d6c81be9ad44c60646e2ea9f6cf4e Gerrit-Change-Number: 16561 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: merged
Change in osmocom-bb[master]: logging: use meaningful default loglevels
dexter has abandoned this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/16892 ) Change subject: logging: use meaningful default loglevels .. Abandoned After all I think this patch was not the best Idea. Looking through the projects and correcting the loglevels if needed is better I think. Also I see that the print to stderr messes up some unit-tests. -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/16892 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I3faefccae2218b17bd942bc2afac7d8e515897b7 Gerrit-Change-Number: 16892 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-CC: Jenkins Builder Gerrit-MessageType: abandon
Change in osmo-ci[master]: jobs/gerrit-verifications.yml: add erlang repos
osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/16872 ) Change subject: jobs/gerrit-verifications.yml: add erlang repos .. Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/16872 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I05d152de6b7a04dee935d79b9987c511351eca95 Gerrit-Change-Number: 16872 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 16 Jan 2020 14:07:48 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-ci[master]: jobs/gerrit-verifications.yml: add erlang repos
osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/16872 ) Change subject: jobs/gerrit-verifications.yml: add erlang repos .. jobs/gerrit-verifications.yml: add erlang repos Run contrib/jenkins.sh in erlang repositories, that were recently updated (osmo_gsup, osmo_dia2gsup, osmo_ss7). Depends: docker-playground Ia3eaec6090c9652549b2850de74ee21730374bbd Related: OS#4345 Change-Id: I05d152de6b7a04dee935d79b9987c511351eca95 --- M jobs/gerrit-verifications.yml M scripts/osmo-ci-docker-rebuild.sh 2 files changed, 20 insertions(+), 1 deletion(-) Approvals: osmith: Verified laforge: Looks good to me, approved diff --git a/jobs/gerrit-verifications.yml b/jobs/gerrit-verifications.yml index 0c338a6..8846e31 100644 --- a/jobs/gerrit-verifications.yml +++ b/jobs/gerrit-verifications.yml @@ -41,7 +41,9 @@ -v "$PWD:/build" -v "$HOME/bin:/build_bin" \ -v "$ARTIFACT_STORE:/artifact_store" \ docker_img: '$USER/debian-stretch-jenkins' +docker_img_erlang: '$USER/debian-buster-erlang' cmd: '{docker_run} {docker_img} /build/contrib/jenkins.sh' +cmd_erlang: '{docker_run} {docker_img_erlang} /build/contrib/jenkins.sh' gerrit_url: 'ssh://jenk...@gerrit.osmocom.org:29418' repos_url: '{gerrit_url}/{repos}' gerrit_project: '{repos}' @@ -109,6 +111,11 @@ concurrent: false cmd: 'ASCIIDOC_WARNINGS_CHECK="1" ./contrib/jenkins_bts_model.sh "$BTS_MODEL"' + - osmo_dia2gsup: + repos_url: '{gerrit_url}/erlang/{repos}' + gerrit_project: 'erlang/{repos}' + cmd: '{cmd_erlang}' + - osmo-ggsn: a1_name: GTP a1: !!python/tuple [--enable-gtp-linux,--disable-gtp-linux] @@ -124,6 +131,12 @@ {docker_img} /build/contrib/jenkins.sh - osmo-gsm-manuals + + - osmo_gsup: + repos_url: '{gerrit_url}/erlang/{repos}' + gerrit_project: 'erlang/{repos}' + cmd: '{cmd_erlang}' + - osmo-hlr - osmo-iuh - osmo-mgw @@ -216,6 +229,11 @@ concurrent: false cmd: './contrib/jenkins.sh' + - ss7: + repos_url: '{gerrit_url}/erlang/{repos}' + gerrit_project: 'erlang/{repos}' + cmd: '{cmd_erlang}' + - osmo-ttcn3-hacks: repos_url: 'https://gerrit.osmocom.org/{repos}' slave_axis: !!python/tuple [ttcn3] diff --git a/scripts/osmo-ci-docker-rebuild.sh b/scripts/osmo-ci-docker-rebuild.sh index 4a7ee25..943b5a0 100755 --- a/scripts/osmo-ci-docker-rebuild.sh +++ b/scripts/osmo-ci-docker-rebuild.sh @@ -2,4 +2,5 @@ cd "$(dirname "$0")/.." . scripts/common.sh docker_images_require \ - "debian-stretch-jenkins" + "debian-stretch-jenkins" \ + "debian-buster-erlang" -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/16872 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I05d152de6b7a04dee935d79b9987c511351eca95 Gerrit-Change-Number: 16872 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: merged
Change in osmocom-bb[master]: logging: use meaningful default loglevels
dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/16892 ) Change subject: logging: use meaningful default loglevels .. logging: use meaningful default loglevels Some logging categories use LOGL_INFO or even LOGL_DEBUG. Lets set those to LOGL_NOTICE to have a less crowded default log output. Change-Id: I3faefccae2218b17bd942bc2afac7d8e515897b7 Related: OS#2577 --- M src/host/layer23/src/common/logging.c M src/host/virt_phy/src/logging.c 2 files changed, 20 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/92/16892/1 diff --git a/src/host/layer23/src/common/logging.c b/src/host/layer23/src/common/logging.c index ed79991..636a615 100644 --- a/src/host/layer23/src/common/logging.c +++ b/src/host/layer23/src/common/logging.c @@ -36,7 +36,7 @@ .name = "DCS", .description = "Cell selection", .color = "\033[34m", - .enabled = 1, .loglevel = LOGL_DEBUG, + .enabled = 1, .loglevel = LOGL_NOTICE, }, [DNB] = { .name = "DNB", @@ -48,54 +48,54 @@ .name = "DPLMN", .description = "PLMN selection", .color = "\033[32m", - .enabled = 1, .loglevel = LOGL_DEBUG, + .enabled = 1, .loglevel = LOGL_NOTICE, }, [DRR] = { .name = "DRR", .description = "Radio Resource", .color = "\033[1;34m", - .enabled = 1, .loglevel = LOGL_DEBUG, + .enabled = 1, .loglevel = LOGL_NOTICE, }, [DMM] = { .name = "DMM", .description = "Mobility Management", .color = "\033[1;32m", - .enabled = 1, .loglevel = LOGL_DEBUG, + .enabled = 1, .loglevel = LOGL_NOTICE, }, [DCC] = { .name = "DCC", .description = "Call Control", .color = "\033[1;33m", - .enabled = 1, .loglevel = LOGL_DEBUG, + .enabled = 1, .loglevel = LOGL_NOTICE, }, [DSS] = { .name = "DSS", .description = "Supplenmentary Services", .color = "\033[1;35m", - .enabled = 1, .loglevel = LOGL_DEBUG, + .enabled = 1, .loglevel = LOGL_NOTICE, }, [DSMS] = { .name = "DSMS", .description = "Short Message Service", .color = "\033[1;37m", - .enabled = 1, .loglevel = LOGL_DEBUG, + .enabled = 1, .loglevel = LOGL_NOTICE, }, [DMNCC] = { .name = "DMNCC", .description = "Mobile Network Call Control", .color = "\033[1;37m", - .enabled = 1, .loglevel = LOGL_DEBUG, + .enabled = 1, .loglevel = LOGL_NOTICE, }, [DMEAS] = { .name = "DMEAS", .description = "MEasurement Reporting", - .enabled = 1, .loglevel = LOGL_DEBUG, + .enabled = 1, .loglevel = LOGL_NOTICE, }, [DPAG] = { .name = "DPAG", .description = "Paging", .color = "\033[33m", - .enabled = 1, .loglevel = LOGL_DEBUG, + .enabled = 1, .loglevel = LOGL_NOTICE, }, [DL1C] = { .name = "DL1C", @@ -107,37 +107,37 @@ .name = "DSAP", .description = "SAP Control", .color = "\033[1;31m", - .enabled = 1, .loglevel = LOGL_DEBUG, + .enabled = 1, .loglevel = LOGL_NOTICE, }, [DSUM] = { .name = "DSUM", .description = "Summary of Process", .color = "\033[1;37m", - .enabled = 1, .loglevel = LOGL_DEBUG, + .enabled = 1, .loglevel = LOGL_NOTICE, }, [DSIM] = { .name = "DSIM", .description = "SIM client", .color = "\033[0;35m", - .enabled = 1, .loglevel = LOGL_DEBUG, + .enabled = 1, .loglevel = LOGL_NOTICE, }, [DGPS] = { .name = "DGPS", .description = "GPS", .color = "\033[1;35m", - .enabled = 1, .loglevel = LOGL_DEBUG, + .enabled = 1, .loglevel = LOGL_NOTICE, }, [DMOB] = { .name = "DMOB", .description = "Mobile", .color = "\033[1;35m", - .enabled = 1, .loglevel = LOGL_DEBUG, + .enabled = 1, .loglevel = LOGL_NOTICE, }, [DPRIM] = { .name = "DPRIM", .description = "PRIM", .color = "\033[1;32m", - .enabled
Change in osmo-ci[master]: docker: move to docker-playground.git
osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/16871 ) Change subject: docker: move to docker-playground.git .. docker: move to docker-playground.git Instead of building "osmocom:deb9_amd64" from this repository, build "$USER/debian-stretch-jenkins" from docker-playground.git (same Dockerfile). Adjust all jobs to use the new image name. Add a new "update-osmo-ci-on-slaves-dp" jenkins job, which triggers the existing "update-osmo-ci-on-slaves" job whenever docker-playground.git changes. Replace docker/rebuild_osmocom_jenkins_image.sh with scripts/osmo-ci-docker-rebuild.sh, so we can get rid of the docker dir. I thought about dropping the script completely, and directly writing the two lines into contrib/jenkins.sh. But I kept the extra script for convenience, when testing locally. Related: OS#4345 Depends: docker-playground I125ae8a6bcabbd1f485028c79b0abacda0622c3a Change-Id: I30a61aebcadef5536e74edd35e1c75ef77a2da9f --- M contrib/jenkins.sh D docker/Dockerfile_osmocom_jenkins.amd64 D docker/rebuild_osmocom_jenkins_image.sh M jobs/gerrit-verifications.yml M jobs/master-builds.yml M jobs/osmo-gsm-tester-runner.yml M jobs/update-osmo-ci-on-slaves.yml A scripts/osmo-ci-docker-rebuild.sh 8 files changed, 34 insertions(+), 173 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved osmith: Verified diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index b161230..275fc69 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -11,6 +11,5 @@ git status if [ `uname` = "Linux" ]; then - cd docker - ./rebuild_osmocom_jenkins_image.sh + scripts/osmo-ci-docker-rebuild.sh fi diff --git a/docker/Dockerfile_osmocom_jenkins.amd64 b/docker/Dockerfile_osmocom_jenkins.amd64 deleted file mode 100644 index 63b6e74..000 --- a/docker/Dockerfile_osmocom_jenkins.amd64 +++ /dev/null @@ -1,146 +0,0 @@ -ARG DEBIAN_VERSION=stretch -FROM debian:${DEBIAN_VERSION} - -# Make "$DEBIAN_VERSION" available after FROM -# https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact -ARG DEBIAN_VERSION - -# Install apt dependencies (keep in alphabetic order) -RUN \ - 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 \ - asciidoc \ - asciidoc-dblatex \ - autoconf \ - autoconf-archive \ - automake \ - bc \ - bison \ - bzip2 \ - cmake \ - coccinelle \ - cppcheck \ - dahdi-source \ - dblatex \ - dbus \ - debhelper \ - devscripts \ - dh-autoreconf \ - dh-systemd \ - docbook5-xml \ - doxygen \ - flex \ - g++ \ - gawk \ - gcc \ - gcc-arm-none-eabi \ - git \ - git-buildpackage \ - graphviz \ - htop \ - inkscape \ - lcov \ - libaio-dev \ - libasound2-dev \ - libboost-all-dev \ - libc-ares-dev \ - libcsv-dev \ - libdbd-sqlite3 \ - libdbi-dev \ - libffi-dev \ - libfftw3-dev \ - libgmp-dev \ - libgnutls28-dev \ - libgps-dev \ - libgsm1-dev \ - liblua5.3-dev \ - libmnl-dev \ - libncurses5-dev \ - libnewlib-arm-none-eabi \ - liboping-dev \ - libortp-dev \ - libpcap-dev \ - libpcsclite-dev \ - libreadline-dev \ - libsctp-dev \ - libsigsegv-dev \ - libsnmp-dev \ - libsofia-sip-ua-glib-dev \ - libsqlite3-dev \ - libssl-dev \ - libtalloc-dev \ - libtool \ - libusb-1.0-0-dev \ - libusb-dev \ - libxml2-utils \ - libzmq3-dev \ - locales \ - lua-socket \ - make \ - mscgen \ - ofono \ - openssh-client \ - osc \ - patchelf \ - pkg-config \ - python3 \ - python3-gi \ - python3-mako \ - python3-nwdiag \ - python3-pip \ - python3-pyflakes \ - python3-setuptools \ - python3-usb \ - python3-yaml \ - rsync \ -
Change in osmo-ci[master]: docker: move to docker-playground.git
osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/16871 ) Change subject: docker: move to docker-playground.git .. Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/16871 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I30a61aebcadef5536e74edd35e1c75ef77a2da9f Gerrit-Change-Number: 16871 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 16 Jan 2020 14:01:06 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-ci[master]: docker_images_require: add symlink code path
osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/16870 ) Change subject: docker_images_require: add symlink code path .. docker_images_require: add symlink code path Make development easier by skipping fetch, checkout and reset --hard if _docker_playground is a symlink. Document _docker_playground in README.adoc and explain how to set up the symlink. Change-Id: If6209ff71488d39e590f5f8506b9d73ad0314846 --- M README.adoc M scripts/common.sh 2 files changed, 27 insertions(+), 10 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved osmith: Verified diff --git a/README.adoc b/README.adoc index aa45b58..786be0d 100644 --- a/README.adoc +++ b/README.adoc @@ -12,3 +12,14 @@ scripts: used by jenkins jobs. Various osmo*/contrib/jenkins.sh scripts assume osmo-ci to be checked out in the build slave user's home, i.e. using a PATH of $HOME/osmo-ci/scripts. + +_docker_playground: Clone of docker-playground.git, so the scripts can build +required docker images. This dir gets created on demand by scripts/common.sh, +and automatically fetched and reset to "origin/master" (override with +$OSMO_BRANCH_DOCKER_PLAYGROUND). The fetch and reset gets skipped if +_docker_playground is a symlink. For development, set it up as follows: + + $ git clone https://git.osmocom.org/docker-playground + $ git clone https://git.osmocom.org/osmo-ci + $ cd osmo-ci + $ ln -s ../docker-playground _docker_playground diff --git a/scripts/common.sh b/scripts/common.sh index 6d28cfc..340bac8 100644 --- a/scripts/common.sh +++ b/scripts/common.sh @@ -117,18 +117,24 @@ docker_images_require() { local oldpwd="$PWD" - # Get docker-plaground.git - if [ -d "_docker_playground" ]; then - git -C _docker_playground fetch + if [ -L "_docker_playground" ]; then + echo "NOTE: _docker_playground is a symlink, skipping fetch, checkout, reset" + cd "_docker_playground/$1" else - git clone https://git.osmocom.org/docker-playground/ _docker_playground - fi - cd _docker_playground - git checkout "$OSMO_BRANCH_DOCKER_PLAYGROUND" - git reset --hard "origin/$OSMO_BRANCH_DOCKER_PLAYGROUND" + # Get docker-plaground.git + if [ -d "_docker_playground" ]; then + git -C _docker_playground fetch + else + git clone https://git.osmocom.org/docker-playground/ _docker_playground + fi - # jenkins-common.sh expects to run from a subdir in docker-playground.git - cd "$1" + cd _docker_playground + git checkout "$OSMO_BRANCH_DOCKER_PLAYGROUND" + git reset --hard "origin/$OSMO_BRANCH_DOCKER_PLAYGROUND" + + # jenkins-common.sh expects to run from a subdir in docker-playground.git + cd "$1" + fi # Subshell: run docker_images_require from jenkins-common.sh, pass all arguments (. ../jenkins-common.sh; docker_images_require "$@") -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/16870 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: If6209ff71488d39e590f5f8506b9d73ad0314846 Gerrit-Change-Number: 16870 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged
Change in osmo-ci[master]: docker_images_require: add symlink code path
osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/16870 ) Change subject: docker_images_require: add symlink code path .. Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/16870 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: If6209ff71488d39e590f5f8506b9d73ad0314846 Gerrit-Change-Number: 16870 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 16 Jan 2020 13:59:22 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in docker-playground[master]: README.md: Document how to get gdb backtrace from process crash
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/16891 ) Change subject: README.md: Document how to get gdb backtrace from process crash .. README.md: Document how to get gdb backtrace from process crash Change-Id: I507707a3ed0e7f88bcc9006612df531c848b949e --- M README.md 1 file changed, 37 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/91/16891/1 diff --git a/README.md b/README.md index 05ee31f..479e045 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,43 @@ decided to scrap the file, and just keep the short list of dependencies right above where they would be needed in the `jenkins.sh`. +## Obtaining gdb backtrace from crash + +If for instance TTCN3 test is producing a crash on a program running in docker, +eg. osmo-msc, it is desirable to get a full crash report. This section describes +how to do so. + +First, open `osmo-$program/Dockerfile` and add lines to install `gdb` plus +`$program` dependency debug packages. For instance: + +``` ++RUNapt-get install -y --no-install-recommends \ ++ gdb \ ++ libosmocore-dbg libosmo-abis-dbg libosmo-netif-dbg libosmo-sigtran-dbg osmo-msc-dbg && \ ++ apt-get clean +``` + +In same `Dockerfile` file, modify configure to build with debug symbols enabled +and other interesting options, such as `--enable-sanitize`: + +``` +- ./configure --enable-smpp --enable-iu && \ ++ export CPPFLAGS="-g -O0 -fno-omit-frame-pointer" && \ ++ export CFLAGS="-g -O0 -fno-omit-frame-pointer" && \ ++ export CXXFLAGS="-g -O0 -fno-omit-frame-pointer" && \ ++ ./configure --enable-smpp --enable-iu --enable-sanitize && \ +``` + +Finally open the script you use to run the program (for instance +`ttcn3-$program-master/jenkins.sh`), and modify it to launch the process using +gdb, and to print a full backtrace when control returns to gdb (when the process +crashes): + +``` +-/bin/sh -c "osmo-msc -c /data/osmo-msc.cfg >>/data/osmo-msc.log 2>&1" ++/bin/sh -c "gdb -ex 'run' -ex 'bt full' --arg osmo-msc -c /data/osmo-msc.cfg >>/data/osmo-msc.log 2>&1" +``` + ## See also * [Overhyped Docker](http://laforge.gnumonks.org/blog/20170503-docker-overhyped/) for related rambling on why this doesn't work as well as one would -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/16891 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I507707a3ed0e7f88bcc9006612df531c848b949e Gerrit-Change-Number: 16891 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange
Change in docker-playground[master]: ttcn3-stp: Set default OSMO_TTCN3_BRANCH to master
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/16890 ) Change subject: ttcn3-stp: Set default OSMO_TTCN3_BRANCH to master .. ttcn3-stp: Set default OSMO_TTCN3_BRANCH to master Change-Id: I6b19e50f65bca6fe556c748f3c2b633f65037dce --- M ttcn3-stp-test/Dockerfile 1 file changed, 1 insertion(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/90/16890/1 diff --git a/ttcn3-stp-test/Dockerfile b/ttcn3-stp-test/Dockerfile index a755c94..e6bb9d0 100644 --- a/ttcn3-stp-test/Dockerfile +++ b/ttcn3-stp-test/Dockerfile @@ -11,9 +11,7 @@ RUNgit config --global user.email doc...@dock.er && \ git config --global user.name "Dock Er" -# FIXME: Once STP patches in laforge/stp are merged into master, then -# OSMO_TTCN3_BRANCH can be set again to "master". -ARGOSMO_TTCN3_BRANCH="laforge/stp" +ARGOSMO_TTCN3_BRANCH="master" ADDhttp://git.osmocom.org/osmo-ttcn3-hacks/patch?h=$OSMO_TTCN3_BRANCH /tmp/commit RUNcd osmo-ttcn3-hacks && \ -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/16890 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I6b19e50f65bca6fe556c748f3c2b633f65037dce Gerrit-Change-Number: 16890 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange
Change in osmo-trx[master]: lms: Make ts_offset and smpl rate coefs device-specific
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/16877 ) Change subject: lms: Make ts_offset and smpl rate coefs device-specific .. lms: Make ts_offset and smpl rate coefs device-specific Right now the values are the same for all devices, but they will differ in forthcoming commits once multi-arfcn support is added. Change-Id: I262d3a71848fc3070473e29e42820848e7591d02 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 12 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 1ef7728..5a5fbe4 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -67,15 +67,19 @@ bool clock_src_int_usable; /* Device specific maximum tx levels selected by phasenoise measurements, in dB */ double max_tx_gain; + /* Sample rate coef (without having TX/RX samples per symbol into account) */ + double rate; + /* Coefficient multiplied by TX sample rate in order to shift Tx time */ + double ts_offset_coef; /* Device Name Prefix as presented by LimeSuite API LMS_GetDeviceInfo() */ std::string name_prefix; }; static const std::map dev_param_map { - { LMS_DEV_SDR_USB, { true, true, 73.0, LMS_DEV_SDR_USB_PREFIX_NAME } }, - { LMS_DEV_SDR_MINI, { false, true, 66.0, LMS_DEV_SDR_MINI_PREFIX_NAME } }, - { LMS_DEV_NET_MICRO, { true, false, 71.0, LMS_DEV_NET_MICRO_PREFIX_NAME } }, - { LMS_DEV_UNKNOWN, { true, true, 73.0, "UNKNOWN" } }, + { LMS_DEV_SDR_USB, { true, true, 73.0, GSMRATE, 8.9e-5, LMS_DEV_SDR_USB_PREFIX_NAME } }, + { LMS_DEV_SDR_MINI, { false, true, 66.0, GSMRATE, 8.9e-5, LMS_DEV_SDR_MINI_PREFIX_NAME } }, + { LMS_DEV_NET_MICRO, { true, false, 71.0, GSMRATE, 8.9e-5, LMS_DEV_NET_MICRO_PREFIX_NAME } }, + { LMS_DEV_UNKNOWN, { true, true, 73.0, GSMRATE, 8.9e-5, "UNKNOWN" } }, }; static enum lms_dev_type parse_dev_type(lms_device_t *m_lms_dev) @@ -277,16 +281,16 @@ goto out_close; print_range("Sample Rate", _sr); - LOGC(DDEV, INFO) << "Setting sample rate to " << GSMRATE*tx_sps << " " << tx_sps; - if (LMS_SetSampleRate(m_lms_dev, GSMRATE*tx_sps, 32) < 0) + sr_host = dev_desc.rate * tx_sps; + LOGC(DDEV, INFO) << "Setting sample rate to " << sr_host << " " << tx_sps; + if (LMS_SetSampleRate(m_lms_dev, sr_host, 32) < 0) goto out_close; if (LMS_GetSampleRate(m_lms_dev, LMS_CH_RX, 0, _host, _rf)) goto out_close; LOGC(DDEV, INFO) << "Sample Rate: Host=" << sr_host << " RF=" << sr_rf; - /* FIXME: make this device/model dependent, like UHDDevice:dev_param_map! */ - ts_offset = static_cast(8.9e-5 * GSMRATE * tx_sps); /* time * sample_rate */ + ts_offset = static_cast(dev_desc.ts_offset_coef * sr_host); /* configure antennas */ if (!set_antennas()) { -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/16877 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I262d3a71848fc3070473e29e42820848e7591d02 Gerrit-Change-Number: 16877 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged
Change in osmo-trx[master]: lms: Store device type specific parameters in one place
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/16876 ) Change subject: lms: Store device type specific parameters in one place .. lms: Store device type specific parameters in one place Add an enum containing each supported device type (LimeSDR-USB, LimeSDR-Mini and LimeNet-Micro) plus "unknown", to leave some room for yet-to-come devices to run with some generic parameters without rebuilding osmo-trx. Each device type is assigned a dev_desc structure, and all of them are put in HashMap, similar to what's already done in UHDDevice.cpp. Device type is infered from string provided by LMS_GetDeviceInfo(), as it was already done before in several places. From now on, we only need to parse the string once since we store the device type after first during open time. Later on, more fields will be moved to device-type specific structure, such as Tx timing offset, clock rate, etc. Change-Id: I7658615787c5bc41c365bab9c11733b701ac2ae5 --- M CommonLibs/trx_vty.c M CommonLibs/trx_vty.h M Transceiver52M/device/lms/LMSDevice.cpp M Transceiver52M/device/lms/LMSDevice.h 4 files changed, 119 insertions(+), 26 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/CommonLibs/trx_vty.c b/CommonLibs/trx_vty.c index 44e1d31..3f875f5 100644 --- a/CommonLibs/trx_vty.c +++ b/CommonLibs/trx_vty.c @@ -42,7 +42,7 @@ static struct trx_ctx* g_trx_ctx; -static const struct value_string clock_ref_names[] = { +const struct value_string clock_ref_names[] = { { REF_INTERNAL, "internal" }, { REF_EXTERNAL, "external" }, { REF_GPS, "gpsdo" }, diff --git a/CommonLibs/trx_vty.h b/CommonLibs/trx_vty.h index d20dd96..c0d54cf 100644 --- a/CommonLibs/trx_vty.h +++ b/CommonLibs/trx_vty.h @@ -5,6 +5,7 @@ #include "config_defs.h" extern struct vty_app_info g_vty_info; +extern const struct value_string clock_ref_names[]; extern const struct value_string filler_names[]; /* Maximum number of physical RF channels */ diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 8ad338b..1ef7728 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -20,6 +20,10 @@ #include #include #include + +#include + +#include "trx_vty.h" #include "Logger.h" #include "Threads.h" #include "LMSDevice.h" @@ -44,11 +48,61 @@ #define LMS_CALIBRATE_BW_HZ OSMO_MAX(GSM_CARRIER_BW, LMS_MIN_BW_SUPPORTED) #define SAMPLE_BUF_SZ(1 << 20) /* Size of Rx timestamp based Ring buffer, in bytes */ + +/* Device Name Prefixes as presented by LimeSuite API LMS_GetDeviceInfo(): */ +#define LMS_DEV_SDR_USB_PREFIX_NAME "LimeSDR-USB" +#define LMS_DEV_SDR_MINI_PREFIX_NAME "LimeSDR-Mini" +#define LMS_DEV_NET_MICRO_PREFIX_NAME "LimeNET-Micro" + +/* Device parameter descriptor */ +struct dev_desc { + /* Does LimeSuite allow switching the clock source for this device? +* LimeSDR-Mini does not have switches but needs soldering to select +* external/internal clock. Any call to LMS_SetClockFreq() will fail. +*/ + bool clock_src_switchable; + /* Does LimeSuite allow using REF_INTERNAL for this device? +* LimeNET-Micro does not like selecting internal clock +*/ + bool clock_src_int_usable; + /* Device specific maximum tx levels selected by phasenoise measurements, in dB */ + double max_tx_gain; + /* Device Name Prefix as presented by LimeSuite API LMS_GetDeviceInfo() */ + std::string name_prefix; +}; + +static const std::map dev_param_map { + { LMS_DEV_SDR_USB, { true, true, 73.0, LMS_DEV_SDR_USB_PREFIX_NAME } }, + { LMS_DEV_SDR_MINI, { false, true, 66.0, LMS_DEV_SDR_MINI_PREFIX_NAME } }, + { LMS_DEV_NET_MICRO, { true, false, 71.0, LMS_DEV_NET_MICRO_PREFIX_NAME } }, + { LMS_DEV_UNKNOWN, { true, true, 73.0, "UNKNOWN" } }, +}; + +static enum lms_dev_type parse_dev_type(lms_device_t *m_lms_dev) +{ + std::map::const_iterator it = dev_param_map.begin(); + + const lms_dev_info_t* device_info = LMS_GetDeviceInfo(m_lms_dev); + + while (it != dev_param_map.end()) + { + enum lms_dev_type dev_type = it->first; + struct dev_desc desc = it->second; + + if (strncmp(device_info->deviceName, desc.name_prefix.c_str(), desc.name_prefix.length()) == 0) { + LOGC(DDEV, INFO) << "Device identified as " << desc.name_prefix; + return dev_type; + } + it++; + } + return LMS_DEV_UNKNOWN; +} + LMSDevice::LMSDevice(size_t tx_sps, size_t rx_sps, InterfaceType iface, size_t chan_num, double lo_offset, const std::vector&
Change in osmo-trx[master]: lms: Store device type specific parameters in one place
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/16876 ) Change subject: lms: Store device type specific parameters in one place .. Patch Set 2: Code-Review+2 +1+1=+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/16876 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I7658615787c5bc41c365bab9c11733b701ac2ae5 Gerrit-Change-Number: 16876 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 16 Jan 2020 13:09:36 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-trx[master]: lms: Initial multi-arfcn support
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/16878 ) Change subject: lms: Initial multi-arfcn support .. lms: Initial multi-arfcn support With current state multi-arfcn can be used (eg. I can place a call between 2 phones using TRX1 and sustain for as long as wanted), but from time to time (around every 20seconds), a burst of Tx packed dropped events from LimeSuite appears. LimeNet-micro coefficients have yet not been tested. Related: OS#4362 Change-Id: I7e67d90a8126546ba376f816ec5d158d4712 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 17 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 5a5fbe4..884cc28 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -69,17 +69,21 @@ double max_tx_gain; /* Sample rate coef (without having TX/RX samples per symbol into account) */ double rate; + /* Sample rate coef (without having TX/RX samples per symbol into account), if multi-arfcn is enabled */ + double rate_multiarfcn; /* Coefficient multiplied by TX sample rate in order to shift Tx time */ double ts_offset_coef; + /* Coefficient multiplied by TX sample rate in order to shift Tx time, if multi-arfcn is enabled */ + double ts_offset_coef_multiarfcn; /* Device Name Prefix as presented by LimeSuite API LMS_GetDeviceInfo() */ std::string name_prefix; }; static const std::map dev_param_map { - { LMS_DEV_SDR_USB, { true, true, 73.0, GSMRATE, 8.9e-5, LMS_DEV_SDR_USB_PREFIX_NAME } }, - { LMS_DEV_SDR_MINI, { false, true, 66.0, GSMRATE, 8.9e-5, LMS_DEV_SDR_MINI_PREFIX_NAME } }, - { LMS_DEV_NET_MICRO, { true, false, 71.0, GSMRATE, 8.9e-5, LMS_DEV_NET_MICRO_PREFIX_NAME } }, - { LMS_DEV_UNKNOWN, { true, true, 73.0, GSMRATE, 8.9e-5, "UNKNOWN" } }, + { LMS_DEV_SDR_USB, { true, true, 73.0, GSMRATE, MCBTS_SPACING, 8.9e-5, 7.9e-5, LMS_DEV_SDR_USB_PREFIX_NAME } }, + { LMS_DEV_SDR_MINI, { false, true, 66.0, GSMRATE, MCBTS_SPACING, 8.9e-5, 8.2e-5, LMS_DEV_SDR_MINI_PREFIX_NAME } }, + { LMS_DEV_NET_MICRO, { true, false, 71.0, GSMRATE, MCBTS_SPACING, 8.9e-5, 7.9e-5, LMS_DEV_NET_MICRO_PREFIX_NAME } }, + { LMS_DEV_UNKNOWN, { true, true, 73.0, GSMRATE, MCBTS_SPACING, 8.9e-5, 7.9e-5, "UNKNOWN" } }, }; static enum lms_dev_type parse_dev_type(lms_device_t *m_lms_dev) @@ -281,7 +285,10 @@ goto out_close; print_range("Sample Rate", _sr); - sr_host = dev_desc.rate * tx_sps; + if (iface == MULTI_ARFCN) + sr_host = dev_desc.rate_multiarfcn * tx_sps; + else + sr_host = dev_desc.rate * tx_sps; LOGC(DDEV, INFO) << "Setting sample rate to " << sr_host << " " << tx_sps; if (LMS_SetSampleRate(m_lms_dev, sr_host, 32) < 0) goto out_close; @@ -290,7 +297,10 @@ goto out_close; LOGC(DDEV, INFO) << "Sample Rate: Host=" << sr_host << " RF=" << sr_rf; - ts_offset = static_cast(dev_desc.ts_offset_coef * sr_host); + if (iface == MULTI_ARFCN) + ts_offset = static_cast(dev_desc.ts_offset_coef_multiarfcn * sr_host); + else + ts_offset = static_cast(dev_desc.ts_offset_coef * sr_host); /* configure antennas */ if (!set_antennas()) { @@ -298,7 +308,7 @@ goto out_close; } - return NORMAL; + return iface == MULTI_ARFCN ? MULTI_ARFCN : NORMAL; out_close: LOGC(DDEV, FATAL) << "Error in LMS open, closing: " << LMS_GetLastErrorMessage(); -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/16878 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I7e67d90a8126546ba376f816ec5d158d4712 Gerrit-Change-Number: 16878 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged
Change in osmo-bts[master]: ta_control: move timing advance code from osmo-bts-trx to common
Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/16885 to look at the new patch set (#3). Change subject: ta_control: move timing advance code from osmo-bts-trx to common .. ta_control: move timing advance code from osmo-bts-trx to common The timing advance controller that is implemented in loops.c of osmo-bts-trx only works for osmo-bts-trx and not for any of the phy based bts. Lets move the timing advance controller into the common part and make it available for every bts. Also lets add a unit-test. Change-Id: If7ddf74db3abc9b9872abe620a0aeebe3327e70a Related: SYS#4567 --- M .gitignore M configure.ac M include/osmo-bts/Makefile.am M include/osmo-bts/phy_link.h A include/osmo-bts/ta_control.h M src/common/Makefile.am M src/common/measurement.c A src/common/ta_control.c M src/osmo-bts-trx/loops.c M src/osmo-bts-trx/loops.h M src/osmo-bts-trx/main.c M src/osmo-bts-trx/scheduler_trx.c M src/osmo-bts-trx/trx_vty.c M tests/Makefile.am A tests/ta_control/Makefile.am A tests/ta_control/ta_control_test.c A tests/ta_control/ta_control_test.ok M tests/testsuite.at 18 files changed, 773 insertions(+), 81 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/85/16885/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/16885 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If7ddf74db3abc9b9872abe620a0aeebe3327e70a Gerrit-Change-Number: 16885 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset
Change in osmo-trx[master]: lms: Store device type specific parameters in one place
fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/16876 ) Change subject: lms: Store device type specific parameters in one place .. Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-trx/+/16876/2/Transceiver52M/device/lms/LMSDevice.cpp File Transceiver52M/device/lms/LMSDevice.cpp: https://gerrit.osmocom.org/c/osmo-trx/+/16876/2/Transceiver52M/device/lms/LMSDevice.cpp@a215 PS2, Line 215: maxTxGainClamp = 73.0; > Which old code? I don't understand. Its use is dropped in: […] Oops, I see now. Sorry. -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/16876 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I7658615787c5bc41c365bab9c11733b701ac2ae5 Gerrit-Change-Number: 16876 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 16 Jan 2020 12:33:03 + Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: pespin Comment-In-Reply-To: fixeria Gerrit-MessageType: comment
Change in osmo-bts[master]: l1sap: merge MEAS IND into PRIM PH DATA / PRIM TCH
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/15918 ) Change subject: l1sap: merge MEAS IND into PRIM PH DATA / PRIM TCH .. Patch Set 12: (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/15918/12/include/osmo-bts/gsm_data_shared.h File include/osmo-bts/gsm_data_shared.h: https://gerrit.osmocom.org/c/osmo-bts/+/15918/12/include/osmo-bts/gsm_data_shared.h@482 PS12, Line 482: /* We are capable to use two different sources to receive measurement data It's not clear in here which method is available if the feature is set... I'm sure this text can be shrunk a lot too. https://gerrit.osmocom.org/c/osmo-bts/+/15918/12/src/osmo-bts-trx/scheduler_trx.c File src/osmo-bts-trx/scheduler_trx.c: https://gerrit.osmocom.org/c/osmo-bts/+/15918/12/src/osmo-bts-trx/scheduler_trx.c@346 PS12, Line 346: int32_t *toa256_sum = _state->toa256_sum; IMHO these pointers are not needed and make code more complex with no good reason. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/15918 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I710d0b7cf193afa8515807836ee69b8b7db84a84 Gerrit-Change-Number: 15918 Gerrit-PatchSet: 12 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 16 Jan 2020 12:25:21 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in osmo-bts[master]: ta_control: move timing advance code from osmo-bts-trx to common
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/16885 ) Change subject: ta_control: move timing advance code from osmo-bts-trx to common .. Patch Set 2: Code-Review-1 (6 comments) You are adding binary file tests/ta_control/ta_control_test. Make sure to remove it and add an entry in gitignore. https://gerrit.osmocom.org/c/osmo-bts/+/16885/2/include/osmo-bts/ta_control.h File include/osmo-bts/ta_control.h: https://gerrit.osmocom.org/c/osmo-bts/+/16885/2/include/osmo-bts/ta_control.h@3 PS2, Line 3: #include This header here is not needed at all. If upon removing it compilation fails, then the issue is somewhere else and you should fix it in a previous separate commit. https://gerrit.osmocom.org/c/osmo-bts/+/16885/2/src/common/ta_control.c File src/common/ta_control.c: https://gerrit.osmocom.org/c/osmo-bts/+/16885/2/src/common/ta_control.c@42 PS2, Line 42: } else if (toa256 > TOA256_9OPERCENT && lchan->rqd_ta < 63) { would be nice having this 63 in some define. https://gerrit.osmocom.org/c/osmo-bts/+/16885/2/src/osmo-bts-trx/trx_vty.c File src/osmo-bts-trx/trx_vty.c: https://gerrit.osmocom.org/c/osmo-bts/+/16885/2/src/osmo-bts-trx/trx_vty.c@196 PS2, Line 196: vty_out (vty, "'no osmotrx timing-advance-loop' is deprecated%s", VTY_NEWLINE); I'd add some string telling the user that no extra operation is needed, TA loop will be enabled by default? https://gerrit.osmocom.org/c/osmo-bts/+/16885/2/tests/ta_control/ta_control_test.c File tests/ta_control/ta_control_test.c: https://gerrit.osmocom.org/c/osmo-bts/+/16885/2/tests/ta_control/ta_control_test.c@43 PS2, Line 43: for (i=0; ihttps://gerrit.osmocom.org/c/osmo-bts/+/16885/2/tests/ta_control/ta_control_test.c@47 PS2, Line 47: whitespace https://gerrit.osmocom.org/c/osmo-bts/+/16885/2/tests/ta_control/ta_control_test.c@55 PS2, Line 55: whitespace -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/16885 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If7ddf74db3abc9b9872abe620a0aeebe3327e70a Gerrit-Change-Number: 16885 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 16 Jan 2020 12:15:50 + Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-trx[master]: lms: Store device type specific parameters in one place
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/16876 ) Change subject: lms: Store device type specific parameters in one place .. Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-trx/+/16876/2/Transceiver52M/device/lms/LMSDevice.cpp File Transceiver52M/device/lms/LMSDevice.cpp: https://gerrit.osmocom.org/c/osmo-trx/+/16876/2/Transceiver52M/device/lms/LMSDevice.cpp@a215 PS2, Line 215: maxTxGainClamp = 73.0; > So you move this parameter to dev_param_map, but the old code may still be > using maxTxGainClamp. […] Which old code? I don't understand. Its use is dropped in: double LMSDevice::maxTxGain() { return dev_param_map.at(m_dev_type).max_tx_gain; } see line 386. -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/16876 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I7658615787c5bc41c365bab9c11733b701ac2ae5 Gerrit-Change-Number: 16876 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 16 Jan 2020 12:03:31 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment
Change in osmo-ttcn3-hacks[master]: MSC: fix TC_iu_cmserv_imsi_unknown: do not call f_mm_auth()
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/16889 ) Change subject: MSC: fix TC_iu_cmserv_imsi_unknown: do not call f_mm_auth() .. Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/16889 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I26fe18093e49bc9f53ac0234338c2b5cf9e4f07c Gerrit-Change-Number: 16889 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 16 Jan 2020 12:01:34 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-bts[master]: l1sap: merge MEAS IND into PRIM PH DATA / PRIM TCH
Hello fixeria, pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/15918 to look at the new patch set (#12). Change subject: l1sap: merge MEAS IND into PRIM PH DATA / PRIM TCH .. l1sap: merge MEAS IND into PRIM PH DATA / PRIM TCH The MPH INFO MEAS IND indication, which contains the uplink measurement data is sent in parallel to the PH DATA and TCH indications as a separate indications. This makes the overall uplink measurement data processing unnecessarly complex. So lets put the data that is relevant for measurement into the PH DATA and TCH indications directly. This change only affects osmo-bts-trx at the moment. In order to keep the upper layers (l1sap.c) compatible we add an autodection to switch between separate measurement indications and included measurement data. Related: OS#2977 Depends: libosmocore I2c34b02d329f9df190c5035c396403ca0a4f9c42 Change-Id: I710d0b7cf193afa8515807836ee69b8b7db84a84 --- M include/osmo-bts/gsm_data_shared.h M include/osmo-bts/scheduler_backend.h M src/common/gsm_data_shared.c M src/common/l1sap.c M src/common/scheduler.c M src/osmo-bts-trx/l1_if.c M src/osmo-bts-trx/l1_if.h M src/osmo-bts-trx/main.c M src/osmo-bts-trx/scheduler_trx.c 9 files changed, 133 insertions(+), 99 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/18/15918/12 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/15918 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I710d0b7cf193afa8515807836ee69b8b7db84a84 Gerrit-Change-Number: 15918 Gerrit-PatchSet: 12 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset
Change in osmo-bts[master]: ta_control: move timing advance code from osmo-bts-trx to common
Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/16885 to look at the new patch set (#2). Change subject: ta_control: move timing advance code from osmo-bts-trx to common .. ta_control: move timing advance code from osmo-bts-trx to common The timing advance controller that is implemented in loops.c of osmo-bts-trx only works for osmo-bts-trx and not for any of the phy based bts. Lets move the timing advance controller into the common part and make it available for every bts. Also lets add a unit-test. Change-Id: If7ddf74db3abc9b9872abe620a0aeebe3327e70a Related: SYS#4567 --- M configure.ac M include/osmo-bts/Makefile.am M include/osmo-bts/phy_link.h A include/osmo-bts/ta_control.h M src/common/Makefile.am M src/common/measurement.c A src/common/ta_control.c M src/osmo-bts-trx/loops.c M src/osmo-bts-trx/loops.h M src/osmo-bts-trx/main.c M src/osmo-bts-trx/scheduler_trx.c M src/osmo-bts-trx/trx_vty.c M tests/Makefile.am A tests/ta_control/Makefile.am A tests/ta_control/ta_control_test A tests/ta_control/ta_control_test.c A tests/ta_control/ta_control_test.ok M tests/testsuite.at 18 files changed, 766 insertions(+), 81 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/85/16885/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/16885 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If7ddf74db3abc9b9872abe620a0aeebe3327e70a Gerrit-Change-Number: 16885 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-MessageType: newpatchset
Change in osmo-bts[master]: l1sap: merge MEAS IND into PRIM PH DATA / PRIM TCH
Hello fixeria, pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/15918 to look at the new patch set (#11). Change subject: l1sap: merge MEAS IND into PRIM PH DATA / PRIM TCH .. l1sap: merge MEAS IND into PRIM PH DATA / PRIM TCH The MPH INFO MEAS IND indication, which contains the uplink measurement data is sent in parallel to the PH DATA and TCH indications as a separate indications. This makes the overall uplink measurement data processing unnecessarly complex. So lets put the data that is relevant for measurement into the PH DATA and TCH indications directly. This change only affects osmo-bts-trx at the moment. In order to keep the upper layers (l1sap.c) compatible we add an autodection to switch between separate measurement indications and included measurement data. Related: OS#2977 Depends: libosmocore I2c34b02d329f9df190c5035c396403ca0a4f9c42 Change-Id: I710d0b7cf193afa8515807836ee69b8b7db84a84 --- M include/osmo-bts/gsm_data_shared.h M include/osmo-bts/scheduler_backend.h M src/common/gsm_data_shared.c M src/common/l1sap.c M src/common/scheduler.c M src/osmo-bts-trx/l1_if.c M src/osmo-bts-trx/l1_if.h M src/osmo-bts-trx/main.c M src/osmo-bts-trx/scheduler_trx.c 9 files changed, 136 insertions(+), 99 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/18/15918/11 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/15918 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I710d0b7cf193afa8515807836ee69b8b7db84a84 Gerrit-Change-Number: 15918 Gerrit-PatchSet: 11 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset
Change in osmo-trx[master]: lms: Store device type specific parameters in one place
fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/16876 ) Change subject: lms: Store device type specific parameters in one place .. Patch Set 2: Code-Review-1 (2 comments) CR-1 because of maxTxGainClamp. https://gerrit.osmocom.org/c/osmo-trx/+/16876/2/Transceiver52M/device/lms/LMSDevice.cpp File Transceiver52M/device/lms/LMSDevice.cpp: https://gerrit.osmocom.org/c/osmo-trx/+/16876/2/Transceiver52M/device/lms/LMSDevice.cpp@a215 PS2, Line 215: maxTxGainClamp = 73.0; So you move this parameter to dev_param_map, but the old code may still be using maxTxGainClamp. Am I missing something? https://gerrit.osmocom.org/c/osmo-trx/+/16876/2/Transceiver52M/device/lms/LMSDevice.cpp@417 PS2, Line 417: if (dev_desc.clock_src_switchable) I would move this check before the switch and return early if !dev_desc.clock_src_switchable. -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/16876 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I7658615787c5bc41c365bab9c11733b701ac2ae5 Gerrit-Change-Number: 16876 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 16 Jan 2020 09:21:54 + Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment