osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/38759?usp=email )
Change subject: Use new libosmo-sigtran API osmo_ss7_as_get_asp_protocol()
......................................................................
Use new libosmo-sigtran API osmo_ss7_as_get_asp_protocol()
Depends: libosmo-sigtran.git Change-Id I6171287c9bc76db6561f8ff92c4aebe453efaa7d
Change-Id: I58b9713ae247a7e28c004170dd890a78c03c39c0
(cherry picked from commit dba60c5a95a0f2809ad353144c27a449c6f2c227)
---
M TODO-RELEASE
M src/osmo-bsc/bsc_ctrl.c
2 files changed, 2 insertions(+), 2 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/59/38759/1
diff --git a/TODO-RELEASE b/TODO-RELEASE
index b5cd5cc..193735c 100644
--- a/TODO-RELEASE
+++ b/TODO-RELEASE
@@ -7,4 +7,4 @@
# If any interfaces have been added since the last public release: c:r:a + 1.
# If any interfaces have been removed or changed since the last public release: c:r:0.
#library what description / commit summary line
-libosmo-sigtran >2.0.1 Use API osmo_ss7_route_get_dest_as(), osmo_ss7_instance_get_id()
+libosmo-sigtran >2.0.1 Use API osmo_ss7_route_get_dest_as(), osmo_ss7_instance_get_id(), osmo_ss7_as_get_asp_protocol()
diff --git a/src/osmo-bsc/bsc_ctrl.c b/src/osmo-bsc/bsc_ctrl.c
index a8224ee..06553da 100644
--- a/src/osmo-bsc/bsc_ctrl.c
+++ b/src/osmo-bsc/bsc_ctrl.c
@@ -672,7 +672,7 @@
}
/* don't attempt to send CTRL on a non-SCCPlite AS */
- if (as->cfg.proto != OSMO_SS7_ASP_PROT_IPA) {
+ if (osmo_ss7_as_get_asp_protocol(as) != OSMO_SS7_ASP_PROT_IPA) {
msgb_free(msg);
return 0;
}
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/38759?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: osmo-bsc
Gerrit-Branch: osmith/1.12.2
Gerrit-Change-Id: I58b9713ae247a7e28c004170dd890a78c03c39c0
Gerrit-Change-Number: 38759
Gerrit-PatchSet: 1
Gerrit-Owner: osmith <osmith(a)sysmocom.de>
Gerrit-CC: pespin <pespin(a)sysmocom.de>
osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/38761?usp=email )
Change subject: Bump version: 1.12.1.8-e322d → 1.12.2
......................................................................
Bump version: 1.12.1.8-e322d → 1.12.2
Change-Id: Idc930e934f0b8d1b1a3ec698517657a6d3ce8cda
---
M TODO-RELEASE
M debian/changelog
2 files changed, 16 insertions(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/61/38761/1
diff --git a/TODO-RELEASE b/TODO-RELEASE
index 193735c..0ed7189 100644
--- a/TODO-RELEASE
+++ b/TODO-RELEASE
@@ -7,4 +7,3 @@
# If any interfaces have been added since the last public release: c:r:a + 1.
# If any interfaces have been removed or changed since the last public release: c:r:0.
#library what description / commit summary line
-libosmo-sigtran >2.0.1 Use API osmo_ss7_route_get_dest_as(), osmo_ss7_instance_get_id(), osmo_ss7_as_get_asp_protocol()
diff --git a/debian/changelog b/debian/changelog
index d0f2d5b..a05f00c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,19 @@
+osmo-bsc (1.12.2) unstable; urgency=medium
+
+ [ Oliver Smith ]
+ * Add osmo_ss7 APIs
+
+ [ Pau Espin Pedrol ]
+ * bsc_ctrl: Use new libosmo-sigtran API osmo_ss7_route_get_dest_as()
+ * lb: Avoid using osmo_ss7_instance private field
+ * Use new libosmo-sigtran API osmo_ss7_instance_get_id()
+ * Use new libosmo-sigtran API osmo_ss7_instances_llist_entry()
+ * bsc_sccplite_msc_send(): Fix msgb leak
+ * Use new libosmo-sigtran API osmo_ss7_as_get_asp_protocol()
+ * Use new libosmo-sigtran API osmo_ss7_as_select_asp()
+
+ -- Oliver Smith <osmith(a)sysmocom.de> Wed, 13 Nov 2024 14:42:07 +0100
+
osmo-bsc (1.12.1) unstable; urgency=medium
[ Vadim Yanitskiy ]
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/38761?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: osmo-bsc
Gerrit-Branch: osmith/1.12.2
Gerrit-Change-Id: Idc930e934f0b8d1b1a3ec698517657a6d3ce8cda
Gerrit-Change-Number: 38761
Gerrit-PatchSet: 1
Gerrit-Owner: osmith <osmith(a)sysmocom.de>
osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/38755?usp=email )
Change subject: lb: Avoid using osmo_ss7_instance private field
......................................................................
lb: Avoid using osmo_ss7_instance private field
We know the id because we just found/created it base don that id, so
simply use it instead of accessing the library object field.
Change-Id: Ib6d1f4898eb0a804ebda527fdd876d2ca4ec1e67
(cherry picked from commit d812fb1e98001f99e2f814ea52292ebdfe03a52f)
---
M src/osmo-bsc/lb.c
1 file changed, 3 insertions(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/55/38755/1
diff --git a/src/osmo-bsc/lb.c b/src/osmo-bsc/lb.c
index 9d5f78e..603b1e1 100644
--- a/src/osmo-bsc/lb.c
+++ b/src/osmo-bsc/lb.c
@@ -451,13 +451,13 @@
OSMO_SCCP_SSN_SMLC_BSSAP_LE);
/* Set up SCCP user and one ASP+AS */
- snprintf(inst_name, sizeof(inst_name), "Lb-%u-%s", cs7_inst->cfg.id, osmo_ss7_asp_protocol_name(used_proto));
+ snprintf(inst_name, sizeof(inst_name), "Lb-%u-%s", bsc_gsmnet->smlc->cs7_instance, osmo_ss7_asp_protocol_name(used_proto));
LOGP(DLCS, LOGL_NOTICE, "Initializing SCCP connection for Lb/%s on cs7 instance %u\n",
- osmo_ss7_asp_protocol_name(used_proto), cs7_inst->cfg.id);
+ osmo_ss7_asp_protocol_name(used_proto), bsc_gsmnet->smlc->cs7_instance);
/* SS7 Protocol stack */
default_pc = osmo_ss7_pointcode_parse(NULL, BSC_DEFAULT_PC);
- sccp = osmo_sccp_simple_client_on_ss7_id(tall_bsc_ctx, cs7_inst->cfg.id, inst_name,
+ sccp = osmo_sccp_simple_client_on_ss7_id(tall_bsc_ctx, bsc_gsmnet->smlc->cs7_instance, inst_name,
default_pc, used_proto,
0, DEFAULT_ASP_LOCAL_IP,
0, DEFAULT_ASP_REMOTE_IP);
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/38755?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: osmo-bsc
Gerrit-Branch: osmith/1.12.2
Gerrit-Change-Id: Ib6d1f4898eb0a804ebda527fdd876d2ca4ec1e67
Gerrit-Change-Number: 38755
Gerrit-PatchSet: 1
Gerrit-Owner: osmith <osmith(a)sysmocom.de>
Gerrit-CC: pespin <pespin(a)sysmocom.de>
osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/38754?usp=email )
Change subject: bsc_ctrl: Use new libosmo-sigtran API osmo_ss7_route_get_dest_as()
......................................................................
bsc_ctrl: Use new libosmo-sigtran API osmo_ss7_route_get_dest_as()
Use this new API instead of accessing the route struct directly.
Depends: libosmo-sigtran.git Change-Id Ife63bd384d247a761e0b89505ea71c41a4a16d9b
Change-Id: I198351fba4cfeba310b397c964e5306cd73189ba
(cherry picked from commit a8da1040e876cadc2d41943c896683f228533092)
---
M TODO-RELEASE
M src/osmo-bsc/bsc_ctrl.c
2 files changed, 6 insertions(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/54/38754/1
diff --git a/TODO-RELEASE b/TODO-RELEASE
index 0ed7189..c073b60 100644
--- a/TODO-RELEASE
+++ b/TODO-RELEASE
@@ -7,3 +7,4 @@
# If any interfaces have been added since the last public release: c:r:a + 1.
# If any interfaces have been removed or changed since the last public release: c:r:0.
#library what description / commit summary line
+libosmo-sigtran >2.0.1 Use API osmo_ss7_route_get_dest_as()
\ No newline at end of file
diff --git a/src/osmo-bsc/bsc_ctrl.c b/src/osmo-bsc/bsc_ctrl.c
index caef66e..2138c65 100644
--- a/src/osmo-bsc/bsc_ctrl.c
+++ b/src/osmo-bsc/bsc_ctrl.c
@@ -633,11 +633,15 @@
static struct osmo_ss7_as *msc_get_ss7_as(struct bsc_msc_data *msc)
{
struct osmo_ss7_route *rt;
+ struct osmo_ss7_as *as;
struct osmo_ss7_instance *ss7 = osmo_sccp_get_ss7(msc->a.sccp);
rt = osmo_ss7_route_lookup(ss7, msc->a.msc_addr.pc);
if (!rt)
return NULL;
- return rt->dest.as;
+ as = osmo_ss7_route_get_dest_as(rt);
+ if (!as)
+ return NULL;
+ return as;
}
static int _ss7_as_send(struct osmo_ss7_as *as, struct msgb *msg)
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/38754?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: osmo-bsc
Gerrit-Branch: osmith/1.12.2
Gerrit-Change-Id: I198351fba4cfeba310b397c964e5306cd73189ba
Gerrit-Change-Number: 38754
Gerrit-PatchSet: 1
Gerrit-Owner: osmith <osmith(a)sysmocom.de>
Gerrit-CC: pespin <pespin(a)sysmocom.de>
osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/38753?usp=email )
Change subject: Add osmo_ss7 APIs
......................................................................
Add osmo_ss7 APIs
Prepare OsmoBSC to work with newer versions of libosmo-sigtran, where
struct osmo_ss7_instance was made private. Ensure the APIs are always
present even if building with older libosmo-sigtran, so we can apply
patches that switches over to using these APIs instead of accessing the
struct directly.
Related: OS#6617
Change-Id: I327664775e94cf1bae203e98f3324d9ab63ee6d0
---
M configure.ac
M include/osmocom/bsc/Makefile.am
A include/osmocom/bsc/sigtran_compat.h
M src/osmo-bsc/Makefile.am
M src/osmo-bsc/bsc_ctrl.c
M src/osmo-bsc/bsc_vty.c
M src/osmo-bsc/lb.c
M src/osmo-bsc/osmo_bsc_sigtran.c
A src/osmo-bsc/sigtran_compat.c
9 files changed, 157 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/53/38753/1
diff --git a/configure.ac b/configure.ac
index ef43aa6..601134d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -224,6 +224,18 @@
AC_MSG_RESULT([CFLAGS="$CFLAGS"])
AC_MSG_RESULT([CPPFLAGS="$CPPFLAGS"])
+# OS#6617: check if libosmo-sigtran has private structs
+# We need to use grep here, can't set the includedir with AC_CHECK_DECL.
+m="OS#6617: checking whether libosmo-sigtran has private structs..."
+h="$($PKG_CONFIG --variable=includedir libosmo-sigtran)/osmocom/sigtran/osmo_ss7.h"
+f=osmo_ss7_as_select_asp
+if grep -q "$f" "$h"; then
+ echo "$m yes ($f in $h)"
+ AC_DEFINE(SIGTRAN_PRIVATE_STRUCTS, [1], ["OS#6617"])
+else
+ echo "$m no ($f not in $h)"
+fi
+
dnl Generate the output
AM_CONFIG_HEADER(bscconfig.h)
diff --git a/include/osmocom/bsc/Makefile.am b/include/osmocom/bsc/Makefile.am
index a560f23..d0f7c52 100644
--- a/include/osmocom/bsc/Makefile.am
+++ b/include/osmocom/bsc/Makefile.am
@@ -67,4 +67,5 @@
smscb.h \
power_control.h \
vgcs_fsm.h \
+ sigtran_compat.h \
$(NULL)
diff --git a/include/osmocom/bsc/sigtran_compat.h b/include/osmocom/bsc/sigtran_compat.h
new file mode 100644
index 0000000..59b40d6
--- /dev/null
+++ b/include/osmocom/bsc/sigtran_compat.h
@@ -0,0 +1,35 @@
+#pragma once
+#include "../../bscconfig.h"
+
+#include <osmocom/sigtran/osmo_ss7.h>
+
+#ifndef SIGTRAN_PRIVATE_STRUCTS
+
+static inline struct osmo_ss7_as *osmo_ss7_route_get_dest_as(struct osmo_ss7_route *rt)
+{
+ return rt->dest.as;
+}
+
+static inline uint32_t osmo_ss7_instance_get_id(const struct osmo_ss7_instance *inst)
+{
+ return inst->cfg.id;
+}
+
+static inline struct osmo_ss7_instance *osmo_ss7_instances_llist_entry(struct llist_head *list)
+{
+ struct osmo_ss7_instance *pos;
+ pos = llist_entry(list, struct osmo_ss7_instance, list);
+ return pos;
+}
+
+static inline enum osmo_ss7_asp_protocol osmo_ss7_as_get_asp_protocol(const struct osmo_ss7_as *as)
+{
+ return as->cfg.proto;
+}
+
+struct osmo_ss7_asp *ss7_as_select_asp_override(struct osmo_ss7_as *as);
+struct osmo_ss7_asp *ss7_as_select_asp_roundrobin(struct osmo_ss7_as *as);
+struct osmo_ss7_asp *ss7_as_select_asp_broadcast(struct osmo_ss7_as *as);
+struct osmo_ss7_asp *osmo_ss7_as_select_asp(struct osmo_ss7_as *as);
+
+#endif
diff --git a/src/osmo-bsc/Makefile.am b/src/osmo-bsc/Makefile.am
index 1026523..2ac133f 100644
--- a/src/osmo-bsc/Makefile.am
+++ b/src/osmo-bsc/Makefile.am
@@ -117,6 +117,7 @@
cbch_scheduler.c \
cbsp_link.c \
power_control.c \
+ sigtran_compat.c \
$(NULL)
libbsc_la_LIBADD = \
diff --git a/src/osmo-bsc/bsc_ctrl.c b/src/osmo-bsc/bsc_ctrl.c
index aff1d83..caef66e 100644
--- a/src/osmo-bsc/bsc_ctrl.c
+++ b/src/osmo-bsc/bsc_ctrl.c
@@ -44,6 +44,7 @@
#include <osmocom/bsc/ctrl.h>
#include <osmocom/bsc/handover_ctrl.h>
#include <osmocom/bsc/neighbor_ident.h>
+#include <osmocom/bsc/sigtran_compat.h>
static int verify_net_apply_config_file(struct ctrl_cmd *cmd, const char *value, void *_data)
{
diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c
index 8690a47..9558330 100644
--- a/src/osmo-bsc/bsc_vty.c
+++ b/src/osmo-bsc/bsc_vty.c
@@ -68,6 +68,7 @@
#include <osmocom/bsc/bsc_msc_data.h>
#include <osmocom/bsc/lchan.h>
#include <osmocom/bsc/pcu_if.h>
+#include <osmocom/bsc/sigtran_compat.h>
#include <inttypes.h>
diff --git a/src/osmo-bsc/lb.c b/src/osmo-bsc/lb.c
index 511a545..9d5f78e 100644
--- a/src/osmo-bsc/lb.c
+++ b/src/osmo-bsc/lb.c
@@ -32,6 +32,7 @@
#include <osmocom/bsc/lcs_loc_req.h>
#include <osmocom/bsc/bssmap_reset.h>
#include <osmocom/bsc/gsm_data.h>
+#include <osmocom/bsc/sigtran_compat.h>
/* Send reset to SMLC */
int bssmap_le_tx_reset(void)
diff --git a/src/osmo-bsc/osmo_bsc_sigtran.c b/src/osmo-bsc/osmo_bsc_sigtran.c
index cdc5785..d1d4d18 100644
--- a/src/osmo-bsc/osmo_bsc_sigtran.c
+++ b/src/osmo-bsc/osmo_bsc_sigtran.c
@@ -37,6 +37,7 @@
#include <osmocom/bsc/bts.h>
#include <osmocom/bsc/paging.h>
#include <osmocom/bsc/bssmap_reset.h>
+#include <osmocom/bsc/sigtran_compat.h>
#include <osmocom/mgcp_client/mgcp_common.h>
#include <osmocom/netif/ipa.h>
diff --git a/src/osmo-bsc/sigtran_compat.c b/src/osmo-bsc/sigtran_compat.c
new file mode 100644
index 0000000..30f0d5b
--- /dev/null
+++ b/src/osmo-bsc/sigtran_compat.c
@@ -0,0 +1,104 @@
+/* (C) 2024 by sysmocom s.f.m.c. GmbH <info(a)sysmocom.de>
+ * All Rights Reserved
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+#include "../../bscconfig.h"
+
+#include <osmocom/bsc/sigtran_compat.h>
+
+#ifndef SIGTRAN_PRIVATE_STRUCTS
+
+struct osmo_ss7_asp *ss7_as_select_asp_override(struct osmo_ss7_as *as)
+{
+ struct osmo_ss7_asp *asp;
+ unsigned int i;
+
+ /* FIXME: proper selection of the ASP based on the SLS! */
+ for (i = 0; i < ARRAY_SIZE(as->cfg.asps); i++) {
+ asp = as->cfg.asps[i];
+ if (asp && osmo_ss7_asp_active(asp))
+ break;
+ }
+ return asp;
+}
+
+struct osmo_ss7_asp *ss7_as_select_asp_roundrobin(struct osmo_ss7_as *as)
+{
+ struct osmo_ss7_asp *asp;
+ unsigned int i;
+ unsigned int first_idx;
+
+ first_idx = (as->cfg.last_asp_idx_sent + 1) % ARRAY_SIZE(as->cfg.asps);
+ i = first_idx;
+ do {
+ asp = as->cfg.asps[i];
+ if (asp && osmo_ss7_asp_active(asp))
+ break;
+ i = (i + 1) % ARRAY_SIZE(as->cfg.asps);
+ } while (i != first_idx);
+ as->cfg.last_asp_idx_sent = i;
+
+ return asp;
+}
+
+/* returns NULL if multiple ASPs would need to be selected. */
+struct osmo_ss7_asp *ss7_as_select_asp_broadcast(struct osmo_ss7_as *as)
+{
+ struct osmo_ss7_asp *asp;
+ struct osmo_ss7_asp *asp_found = NULL;
+
+ for (unsigned int i = 0; i < ARRAY_SIZE(as->cfg.asps); i++) {
+ asp = as->cfg.asps[i];
+ if (!asp || !osmo_ss7_asp_active(asp))
+ continue;
+ if (asp_found) /* >1 ASPs selected, early return */
+ return NULL;
+ asp_found = asp;
+ }
+ return asp_found;
+}
+
+struct osmo_ss7_asp *osmo_ss7_as_select_asp(struct osmo_ss7_as *as)
+{
+ struct osmo_ss7_asp *asp = NULL;
+
+ switch (as->cfg.mode) {
+ case OSMO_SS7_AS_TMOD_OVERRIDE:
+ asp = ss7_as_select_asp_override(as);
+ break;
+ case OSMO_SS7_AS_TMOD_LOADSHARE:
+ /* TODO: actually use the SLS value to ensure same SLS goes
+ * through same ASP. Not strictly required by M3UA RFC, but
+ * would fit the overall principle. */
+ case OSMO_SS7_AS_TMOD_ROUNDROBIN:
+ asp = ss7_as_select_asp_roundrobin(as);
+ break;
+ case OSMO_SS7_AS_TMOD_BCAST:
+ return ss7_as_select_asp_broadcast(as);
+ case _NUM_OSMO_SS7_ASP_TMOD:
+ OSMO_ASSERT(false);
+ }
+
+ if (!asp) {
+ LOGPFSM(as->fi, "No selectable ASP in AS\n");
+ return NULL;
+ }
+ return asp;
+}
+
+#endif
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/38753?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: osmo-bsc
Gerrit-Branch: osmith/1.12.2
Gerrit-Change-Id: I327664775e94cf1bae203e98f3324d9ab63ee6d0
Gerrit-Change-Number: 38753
Gerrit-PatchSet: 1
Gerrit-Owner: osmith <osmith(a)sysmocom.de>
Attention is currently required from: fixeria.
Hello Jenkins Builder,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/libosmo-abis/+/38752?usp=email
to look at the new patch set (#2).
The following approvals got outdated and were removed:
Verified-1 by Jenkins Builder
Change subject: raa_prime_encode: rework is_z_seq() to improve performance
......................................................................
raa_prime_encode: rework is_z_seq() to improve performance
Change-Id: I43f4a85102114b51a8f2d9fa8fe3b941800b56fa
---
M src/trau/raa_prime_encode.c
1 file changed, 5 insertions(+), 6 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/52/38752/2
--
To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/38752?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: libosmo-abis
Gerrit-Branch: master
Gerrit-Change-Id: I43f4a85102114b51a8f2d9fa8fe3b941800b56fa
Gerrit-Change-Number: 38752
Gerrit-PatchSet: 2
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>